Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // These define special actions that take more than one keystroke
- #define NO_ACTION 0x00
- #define ACTION_SOURCE_MONITOR_WINDOW -1
- #define ACTION_TIMELINES_WINDOW -2
- #define ACTION_AUDIO_CLIP_MIXER_WINDOW -3
- #define ACTION_UNDO -4
- #define ACTION_SCALE -5
- #define ACTION_GRAPH -8
- #define ACTION_LAYER_DOWN -9
- #define ACTION_LAYER_UP -10
- // Note that the special shuttling behavior isn't in this file, since it needs to be processed separately
- // This maps matrix key positions onto their logical control ID's
- const byte keyMatrix[2][3][3] = {
- {
- {2, 1, 0},
- {8, 7, 11},
- {17, 12, 15}
- },
- {
- {5, 3, 4},
- {9, 16, 13},
- {6, 14, 10}
- }
- };
- const int switchAssignments[] =
- {KEY_SPACE, KEY_F9, KEY_H, ACTION_SCALE, ACTION_UNDO,
- KEY_QUOTE, KEY_P, ACTION_GRAPH, KEY_G, KEY_S,
- ACTION_AUDIO_CLIP_MIXER_WINDOW, KEY_RIGHT_BRACE, KEY_LEFT_BRACE, NO_ACTION, KEY_COMMA,
- KEY_TAB, KEY_PERIOD,
- KEY_L // I wired the big knob click into the circuit, even though pressing it is physically impossible
- };
- // CCW, CW
- const int topKnobAssignments[] = {KEY_EQUAL, KEY_MINUS};
- const int middleKnobAssignments[] = {KEY_K, KEY_J};
- const int lowerKnobAssignments[] = {ACTION_LAYER_UP, ACTION_LAYER_DOWN};
- const int wheelAssignments[] = {KEY_PAGE_DOWN, KEY_PAGE_UP};
- void performAction(int action) {
- switch (action) {
- case NO_ACTION:
- break;
- case ACTION_SOURCE_MONITOR_WINDOW:
- Keyboard.press(MODIFIERKEY_SHIFT);
- Keyboard.press(KEY_2);
- Keyboard.release(KEY_2);
- Keyboard.release(MODIFIERKEY_SHIFT);
- break;
- case ACTION_TIMELINES_WINDOW:
- Keyboard.press(MODIFIERKEY_SHIFT);
- Keyboard.press(KEY_3);
- Keyboard.release(KEY_3);
- Keyboard.release(MODIFIERKEY_SHIFT);
- break;
- case ACTION_AUDIO_CLIP_MIXER_WINDOW:
- Keyboard.press(MODIFIERKEY_CTRL);
- Keyboard.press(KEY_QUOTE);
- Keyboard.release(KEY_QUOTE);
- Keyboard.release(MODIFIERKEY_CTRL);
- break;
- case ACTION_UNDO:
- Keyboard.press(MODIFIERKEY_CTRL);
- Keyboard.press(MODIFIERKEY_ALT);
- Keyboard.press(KEY_HOME);
- Keyboard.release(KEY_HOME);
- Keyboard.release(MODIFIERKEY_ALT);
- Keyboard.release(MODIFIERKEY_CTRL);
- break;
- case ACTION_SCALE:
- Keyboard.press(MODIFIERKEY_CTRL);
- Keyboard.press(MODIFIERKEY_ALT);
- Keyboard.press(KEY_F);
- Keyboard.release(KEY_F);
- Keyboard.release(MODIFIERKEY_ALT);
- Keyboard.release(MODIFIERKEY_CTRL);
- break;
- case ACTION_GRAPH:
- Keyboard.press(MODIFIERKEY_SHIFT);
- Keyboard.press(KEY_F3);
- Keyboard.release(KEY_F3);
- Keyboard.release(MODIFIERKEY_SHIFT);
- Serial.println("Ctrl down");
- break;
- case ACTION_LAYER_UP:
- Keyboard.press(MODIFIERKEY_CTRL);
- Keyboard.press(KEY_UP);
- Keyboard.release(KEY_UP);
- Keyboard.release(MODIFIERKEY_CTRL);
- break;
- case ACTION_LAYER_DOWN:
- Keyboard.press(MODIFIERKEY_CTRL);
- Keyboard.press(KEY_DOWN);
- Keyboard.release(KEY_DOWN);
- Keyboard.release(MODIFIERKEY_CTRL);
- break;
- default:
- Keyboard.press(action);
- Keyboard.release(action);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement