Advertisement
Guest User

actions.h

a guest
Dec 30th, 2020
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.19 KB | None | 0 0
  1. // These define special actions that take more than one keystroke
  2. #define NO_ACTION 0x00
  3. #define ACTION_SOURCE_MONITOR_WINDOW -1
  4. #define ACTION_TIMELINES_WINDOW -2
  5. #define ACTION_AUDIO_CLIP_MIXER_WINDOW -3
  6. #define ACTION_UNDO -4
  7. #define ACTION_SCALE -5
  8. #define ACTION_GRAPH -8
  9. #define ACTION_LAYER_DOWN -9
  10. #define ACTION_LAYER_UP -10
  11.  
  12. // Note that the special shuttling behavior isn't in this file, since it needs to be processed separately
  13.  
  14. // This maps matrix key positions onto their logical control ID's
  15. const byte keyMatrix[2][3][3] = {
  16.   {
  17.     {2, 1, 0},
  18.     {8, 7, 11},
  19.     {17, 12, 15}
  20.   },
  21.   {
  22.     {5, 3, 4},
  23.     {9, 16, 13},
  24.     {6, 14, 10}
  25.   }
  26. };
  27.  
  28.  const int switchAssignments[] =
  29.  {KEY_SPACE, KEY_F9, KEY_H, ACTION_SCALE, ACTION_UNDO,
  30.  KEY_QUOTE, KEY_P, ACTION_GRAPH, KEY_G, KEY_S,
  31.  ACTION_AUDIO_CLIP_MIXER_WINDOW, KEY_RIGHT_BRACE, KEY_LEFT_BRACE, NO_ACTION, KEY_COMMA,
  32.   KEY_TAB,  KEY_PERIOD,
  33.   KEY_L  // I wired the big knob click into the circuit, even though pressing it is physically impossible
  34.   };
  35.  
  36. // CCW, CW
  37. const int topKnobAssignments[] = {KEY_EQUAL, KEY_MINUS};
  38. const int middleKnobAssignments[] = {KEY_K, KEY_J};
  39. const int lowerKnobAssignments[] = {ACTION_LAYER_UP, ACTION_LAYER_DOWN};
  40. const int wheelAssignments[] = {KEY_PAGE_DOWN, KEY_PAGE_UP};
  41.  
  42. void performAction(int action) {
  43.   switch (action) {
  44.     case NO_ACTION:
  45.       break;
  46.     case ACTION_SOURCE_MONITOR_WINDOW:
  47.       Keyboard.press(MODIFIERKEY_SHIFT);
  48.       Keyboard.press(KEY_2);
  49.       Keyboard.release(KEY_2);
  50.       Keyboard.release(MODIFIERKEY_SHIFT);
  51.       break;
  52.     case ACTION_TIMELINES_WINDOW:
  53.       Keyboard.press(MODIFIERKEY_SHIFT);
  54.       Keyboard.press(KEY_3);
  55.       Keyboard.release(KEY_3);
  56.       Keyboard.release(MODIFIERKEY_SHIFT);
  57.       break;
  58.     case ACTION_AUDIO_CLIP_MIXER_WINDOW:
  59.       Keyboard.press(MODIFIERKEY_CTRL);
  60.       Keyboard.press(KEY_QUOTE);
  61.       Keyboard.release(KEY_QUOTE);
  62.       Keyboard.release(MODIFIERKEY_CTRL);
  63.       break;
  64.       case ACTION_UNDO:
  65.       Keyboard.press(MODIFIERKEY_CTRL);  
  66.       Keyboard.press(MODIFIERKEY_ALT);  
  67.       Keyboard.press(KEY_HOME);
  68.       Keyboard.release(KEY_HOME);
  69.       Keyboard.release(MODIFIERKEY_ALT);
  70.       Keyboard.release(MODIFIERKEY_CTRL);
  71.       break;
  72.       case ACTION_SCALE:
  73.       Keyboard.press(MODIFIERKEY_CTRL);
  74.       Keyboard.press(MODIFIERKEY_ALT);  
  75.       Keyboard.press(KEY_F);
  76.       Keyboard.release(KEY_F);
  77.       Keyboard.release(MODIFIERKEY_ALT);
  78.       Keyboard.release(MODIFIERKEY_CTRL);
  79.       break;
  80.     case ACTION_GRAPH:
  81.       Keyboard.press(MODIFIERKEY_SHIFT);
  82.       Keyboard.press(KEY_F3);
  83.       Keyboard.release(KEY_F3);
  84.       Keyboard.release(MODIFIERKEY_SHIFT);
  85.       Serial.println("Ctrl down");
  86.       break;
  87.       case ACTION_LAYER_UP:
  88.       Keyboard.press(MODIFIERKEY_CTRL);
  89.       Keyboard.press(KEY_UP);
  90.       Keyboard.release(KEY_UP);
  91.       Keyboard.release(MODIFIERKEY_CTRL);
  92.       break;
  93.       case ACTION_LAYER_DOWN:
  94.       Keyboard.press(MODIFIERKEY_CTRL);
  95.       Keyboard.press(KEY_DOWN);
  96.       Keyboard.release(KEY_DOWN);      
  97.       Keyboard.release(MODIFIERKEY_CTRL);
  98.       break;
  99.     default:
  100.       Keyboard.press(action);
  101.       Keyboard.release(action);
  102.   }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement