struct Action { int keyID; int keyModifierID; }; //Hardware buttons and Actions are ordered from the bottom left to the top right matrix. Rotary encoder: left, right then press Action modes[][15] = { { {KEY_MEDIA_PREV_TRACK, 0}, {KEY_MEDIA_PLAY_PAUSE, 0}, {KEY_MEDIA_NEXT_TRACK, 0}, {KEY_F16, 0}, {KEY_F17, 0}, {KEY_F18, 0}, {KEY_F19, 0}, {KEY_F20, 0}, {KEY_F21, 0}, {KEY_F22, 0}, {KEY_F23, 0}, {-1, 0}, //menu / back {KEY_MEDIA_VOLUME_DEC, 0}, {KEY_MEDIA_VOLUME_INC, 0}, {KEY_MEDIA_MUTE, 0} }, { {KEY_F13, MODIFIERKEY_SHIFT}, {KEY_F14, MODIFIERKEY_SHIFT}, {KEY_F15, MODIFIERKEY_SHIFT}, {KEY_F16, MODIFIERKEY_SHIFT}, {KEY_F17, MODIFIERKEY_SHIFT}, {KEY_F18, MODIFIERKEY_SHIFT}, {KEY_F19, MODIFIERKEY_SHIFT}, {KEY_F20, MODIFIERKEY_SHIFT}, {KEY_F21, MODIFIERKEY_SHIFT}, {KEY_F22, MODIFIERKEY_SHIFT}, {KEY_F23, MODIFIERKEY_SHIFT}, {-1, 0}, //menu / back {KEYPAD_MINUS, 0}, {KEYPAD_PLUS, 0}, {KEYPAD_ENTER, 0} }, { {KEY_F13, MODIFIERKEY_CTRL}, {KEY_F14, MODIFIERKEY_CTRL}, {KEY_F15, MODIFIERKEY_CTRL}, {KEY_F16, MODIFIERKEY_CTRL}, {KEY_F17, MODIFIERKEY_CTRL}, {KEY_F18, MODIFIERKEY_CTRL}, {KEY_F19, MODIFIERKEY_CTRL}, {KEY_F20, MODIFIERKEY_CTRL}, {KEY_F21, MODIFIERKEY_CTRL}, {KEY_F22, MODIFIERKEY_CTRL}, {KEY_F23, MODIFIERKEY_CTRL}, {-1, 0}, //menu / back {KEYPAD_MINUS, MODIFIERKEY_CTRL}, {KEYPAD_PLUS, MODIFIERKEY_CTRL}, {KEYPAD_ENTER, MODIFIERKEY_CTRL} } };