TinLethax

AFG3000C keypad code

Dec 17th, 2025 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.24 KB | Source Code | 0 0
  1. void keypad_decodeKeyMenu1(undefined4 param_1,undefined4 *keycode)
  2.  
  3. {
  4.   int iVar1;
  5.  
  6.   switch(*keycode) {
  7.   case 8:
  8.                     /* Manual Trigger */
  9.     FUN_000e4c4c(keypadVar[0x5f],L'Í');
  10.     FUN_000e39d0(keypadVar[0x4c],10);
  11.     frontPanel_LEDControlOn(0x40);
  12.     break;
  13.   case 9:
  14.     FUN_000e4bc4(keypadVar[0x5f],".");
  15.     FUN_000e39d0(keypadVar[0x5b],10);
  16.     break;
  17.   case 10:
  18.     FUN_000e4bc4(keypadVar[0x5f],"0");
  19.     FUN_000e39d0(keypadVar[0x5a],10);
  20.     break;
  21.   case 0xb:
  22.     FUN_000e4bc4(keypadVar[0x5f],"Change View");
  23.     FUN_000e39d0(keypadVar[0x32],10);
  24.     break;
  25.   case 0xc:
  26.     iVar1 = isDualChannel();
  27.     if (iVar1 != 0) {
  28.       FUN_000e4bc4(keypadVar[0x5f],"Output CH2");
  29.       FUN_000e39d0(keypadVar[0x4b],10);
  30.       frontPanel_LEDControlOn(0xc);
  31.     }
  32.     break;
  33.   case 0xd:
  34.     FUN_000e4bc4(keypadVar[0x5f],"CH1/CH2");
  35.     FUN_000e39d0(keypadVar[0x4a],10);
  36.     break;
  37.   case 0xe:
  38.     FUN_000e4bc4(keypadVar[0x5f],"Output CH1");
  39.     FUN_000e39d0(keypadVar[0x49],10);
  40.     frontPanel_LEDControlOn(0xe);
  41.     break;
  42.   case 0xf:
  43.     if (DAT_00351650 == 0) {
  44.       FUN_000e4bc4(keypadVar[0x5f],"Up Menu");
  45.       FUN_000e39d0(keypadVar[0x31],10);
  46.     }
  47.     else {
  48.       FUN_000a9cf8();
  49.       FUN_000ec1e8(&DAT_0035a6b0,0);
  50.     }
  51.     break;
  52.   case 0x10:
  53.     FUN_000e4bc4(keypadVar[0x5f],"+/-");
  54.     FUN_000e39d0(keypadVar[0x5c],10);
  55.     break;
  56.   case 0x11:
  57.     FUN_000e4bc4(keypadVar[0x5f],"2");
  58.     FUN_000e39d0(keypadVar[0x58],10);
  59.     break;
  60.   case 0x12:
  61.     FUN_000e4bc4(keypadVar[0x5f],"1");
  62.     FUN_000e39d0(keypadVar[0x57],10);
  63.     break;
  64.   case 0x13:
  65.     FUN_000e4c4c(keypadVar[0x5f],0xe5);
  66.     FUN_000e39d0(keypadVar[0x48],10);
  67.     break;
  68.   case 0x14:
  69.     FUN_000e4c4c(keypadVar[0x5f],0x20b);
  70.     FUN_000e39d0(keypadVar[0x47],10);
  71.     break;
  72.   case 0x15:
  73.     FUN_000e4c4c(keypadVar[0x5f],0x206);
  74.     FUN_000e39d0(keypadVar[0x46],10);
  75.     break;
  76.   case 0x16:
  77.     FUN_000e4bc4(keypadVar[0x5f],"More Waveform");
  78.     FUN_000e39d0(keypadVar[0x38],10);
  79.     frontPanel_LEDControlOn(0x16);
  80.     break;
  81.   case 0x17:
  82.     FUN_000e4bc4(keypadVar[0x5f],"BEZEL-5");
  83.     FUN_000e39d0(keypadVar[0x30],10);
  84.     break;
  85.   case 0x18:
  86.     FUN_000e4bc4(keypadVar[0x5f],"Enter");
  87.     FUN_000e39d0(keypadVar[0x5d],10);
  88.     break;
  89.   case 0x19:
  90.     FUN_000e4bc4(keypadVar[0x5f],"3");
  91.     FUN_000e39d0(keypadVar[0x59],10);
  92.     break;
  93.   case 0x1a:
  94.     FUN_000e39d0(keypadVar[0x53],10);
  95.     FUN_000e4bc4(keypadVar[0x5f],"4");
  96.     break;
  97.   case 0x1b:
  98.                     /* Help */
  99.     FUN_000e4c4c(keypadVar[0x5f],0x23f);
  100.     FUN_000e39d0(keypadVar[0x45],10);
  101.     break;
  102.   case 0x1c:
  103.     FUN_000e4bc4(keypadVar[0x5f],"Utility");
  104.     FUN_000e39d0(keypadVar[0x44],10);
  105.     break;
  106.   case 0x1d:
  107.     FUN_000e4bc4(keypadVar[0x5f],"Edit");
  108.     FUN_000e39d0(keypadVar[0x43],10);
  109.     break;
  110.   case 0x1e:
  111.                     /* Arb */
  112.     FUN_000e4c4c(keypadVar[0x5f],0x167);
  113.     FUN_000e39d0(keypadVar[0x37],10);
  114.     frontPanel_LEDControlOn(0x1e);
  115.     break;
  116.   case 0x1f:
  117.     FUN_000e4bc4(keypadVar[0x5f],"BEZEL-4");
  118.     FUN_000e39d0(keypadVar[0x2f],10);
  119.     break;
  120.   case 0x21:
  121.     FUN_000e4bc4(keypadVar[0x5f],"5");
  122.     FUN_000e39d0(keypadVar[0x54],10);
  123.     break;
  124.   case 0x22:
  125.     FUN_000e4bc4(keypadVar[0x5f],"7");
  126.     FUN_000e39d0(keypadVar[0x4f],10);
  127.     break;
  128.   case 0x24:
  129.     FUN_000e4c4c(keypadVar[0x5f],0x191);
  130.     FUN_000e39d0(keypadVar[0x42],10);
  131.     break;
  132.   case 0x25:
  133.     FUN_000e4c4c(keypadVar[0x5f],0x189);
  134.     FUN_000e39d0(keypadVar[0x41],10);
  135.     break;
  136.   case 0x26:
  137.                     /* Pulse */
  138.     FUN_000e4c4c(keypadVar[0x5f],0x166);
  139.     FUN_000e39d0(keypadVar[0x36],10);
  140.     frontPanel_LEDControlOn(0x26);
  141.     break;
  142.   case 0x27:
  143.     FUN_000e4bc4(keypadVar[0x5f],"BEZEL-3");
  144.     FUN_000e39d0(keypadVar[0x2e],10);
  145.     break;
  146.   case 0x28:
  147.     FUN_000e4bc4(keypadVar[0x5f],"BackSpace");
  148.     FUN_000e39d0(keypadVar[0x56],10);
  149.     break;
  150.   case 0x29:
  151.     FUN_000e4bc4(keypadVar[0x5f],"6");
  152.     FUN_000e39d0(keypadVar[0x55],10);
  153.     break;
  154.   case 0x2a:
  155.     FUN_000e4bc4(keypadVar[0x5f],"8");
  156.     FUN_000e39d0(keypadVar[0x50],10);
  157.     break;
  158.   case 0x2b:
  159.     FUN_000e4c4c(keypadVar[0x5f],0x162);
  160.     FUN_000e39d0(keypadVar[0x40],10);
  161.     break;
  162.   case 0x2d:
  163.     FUN_000e4c4c(keypadVar[0x5f],0x5b);
  164.     FUN_000e39d0(keypadVar[0x3f],10);
  165.     break;
  166.   case 0x2e:
  167.                     /* Ramp */
  168.     FUN_000e4c4c(keypadVar[0x5f],0x164);
  169.     FUN_000e39d0(keypadVar[0x35],10);
  170.     frontPanel_LEDControlOn(0x2e);
  171.     break;
  172.   case 0x2f:
  173.     FUN_000e4bc4(keypadVar[0x5f],"BEZEL-2");
  174.     FUN_000e39d0(keypadVar[0x2d],10);
  175.     break;
  176.   case 0x30:
  177.     FUN_000e4c4c(keypadVar[0x5f],0x1e8);
  178.     FUN_000e39d0(keypadVar[0x52],10);
  179.     break;
  180.   case 0x31:
  181.     FUN_000e4bc4(keypadVar[0x5f],"9");
  182.     FUN_000e39d0(keypadVar[0x51],10);
  183.     break;
  184.   case 0x32:
  185.     FUN_000e4bc4(keypadVar[0x5f],"<<<");
  186.     FUN_000e39d0(keypadVar[0x4d],10);
  187.     break;
  188.   case 0x33:
  189.     FUN_000e4c4c(keypadVar[0x5f],L'3');
  190.     FUN_000e39d0(keypadVar[0x3e],10);
  191.     break;
  192.   case 0x35:
  193.     FUN_000e4c4c(keypadVar[0x5f],0x51);
  194.     FUN_000e39d0(keypadVar[0x3d],10);
  195.     break;
  196.   case 0x36:
  197.                     /* Square */
  198.     FUN_000e4c4c(keypadVar[0x5f],0x165);
  199.     FUN_000e39d0(keypadVar[0x34],10);
  200.     frontPanel_LEDControlOn(0x36);
  201.     break;
  202.   case 0x37:
  203.     FUN_000e4bc4(keypadVar[0x5f],"BEZEL-1");
  204.     FUN_000e39d0(keypadVar[0x2c],10);
  205.     break;
  206.   case 0x38:
  207.     FUN_000e4bc4(keypadVar[0x5f],">>>");
  208.     FUN_000e39d0(keypadVar[0x4e],10);
  209.     break;
  210.   case 0x3a:
  211.                     /* Burst */
  212.     FUN_000e4c4c(keypadVar[0x5f],0x172);
  213.     FUN_000e39d0(keypadVar[0x3c],10);
  214.     frontPanel_LEDControlOn(0x3a);
  215.     break;
  216.   case 0x3b:
  217.                     /* Sweep */
  218.     FUN_000e4c4c(keypadVar[0x5f],0x171);
  219.     FUN_000e39d0(keypadVar[0x3b],10);
  220.     frontPanel_LEDControlOn(0x3b);
  221.     break;
  222.   case 0x3c:
  223.                     /* Modulation */
  224.     FUN_000e4c4c(keypadVar[0x5f],0x173);
  225.     FUN_000e39d0(keypadVar[0x3a],10);
  226.     frontPanel_LEDControlOn(0x3c);
  227.     break;
  228.   case 0x3d:
  229.                     /* Continuous */
  230.     FUN_000e4c4c(keypadVar[0x5f],0x170);
  231.     FUN_000e39d0(keypadVar[0x39],10);
  232.     frontPanel_LEDControlOn(0x3d);
  233.     break;
  234.   case 0x3e:
  235.                     /* Sine */
  236.     FUN_000e4c4c(keypadVar[0x5f],0x163);
  237.     FUN_000e39d0(keypadVar[0x33],10);
  238.     frontPanel_LEDControlOn(0x3e);
  239.     break;
  240.   case 0x3f:
  241.     FUN_000e4bc4(keypadVar[0x5f],"Top Menu");
  242.     FUN_000e39d0(keypadVar[0x2b],10);
  243.   }
  244.   (**(code **)(*keypadVar + 0x2c))(keypadVar);
  245.   LCD_frameBufferUpdate();
  246.   return;
  247. }
  248.  
  249. undefined4 keypad_keyCodeToASCII(undefined4 param_1,undefined4 keyCode)
  250.  
  251. {
  252.   undefined4 uVar1;
  253.  
  254.   switch(keyCode) {
  255.   case 9:
  256.     uVar1 = L'.';
  257.     break;
  258.   case 10:
  259.     uVar1 = L'0';
  260.     break;
  261.   default:
  262.     uVar1 = 0;
  263.     break;
  264.   case 0x10:
  265.                     /* +/- */
  266.     uVar1 = L'-';
  267.     break;
  268.   case 0x11:
  269.     uVar1 = L'2';
  270.     break;
  271.   case 0x12:
  272.     uVar1 = L'1';
  273.     break;
  274.   case 0x18:
  275.                     /* enter */
  276.     uVar1 = L'\n';
  277.     break;
  278.   case 0x19:
  279.     uVar1 = L'3';
  280.     break;
  281.   case 0x1a:
  282.     uVar1 = L'4';
  283.     break;
  284.   case 0x21:
  285.     uVar1 = L'5';
  286.     break;
  287.   case 0x22:
  288.     uVar1 = L'7';
  289.     break;
  290.   case 0x29:
  291.     uVar1 = L'6';
  292.     break;
  293.   case 0x2a:
  294.     uVar1 = L'8';
  295.     break;
  296.   case 0x31:
  297.     uVar1 = L'9';
  298.   }
  299.   if (isUsingMenuKeyAsASCII == 0) {
  300.     return uVar1;
  301.   }
  302.   switch(keyCode) {
  303.   case 0x16:
  304.                     /* MORE */
  305.     return L'F';
  306.   case 0x1b:
  307.                     /* Help */
  308.     uVar1 = L'R';
  309.     break;
  310.   case 0x1c:
  311.                     /* Utility */
  312.     return L'U';
  313.   case 0x1e:
  314.                     /* ARB */
  315.     return L'E';
  316.   case 0x26:
  317.                     /* PULSE */
  318.     return L'D';
  319.   case 0x2e:
  320.                     /* RAMP */
  321.     return L'C';
  322.   case 0x36:
  323.                     /* SQUARE */
  324.     return L'B';
  325.   case 0x3a:
  326.                     /* Burst */
  327.     return L'Q';
  328.   case 0x3b:
  329.                     /* Sweep */
  330.     return L'N';
  331.   case 0x3c:
  332.                     /* Modulation */
  333.     return L'P';
  334.   case 0x3d:
  335.                     /* Continuous */
  336.     return L'K';
  337.   case 0x3e:
  338.                     /* SINE */
  339.     return L'A';
  340.   }
  341.   return uVar1;
  342. }
  343.  
  344.  
  345.  
Advertisement
Add Comment
Please, Sign In to add comment