From 84a5f01eb3a52cd9e7b45551e6fc07a4c7a63adc Mon Sep 17 00:00:00 2001 From: Ronald Schaten Date: Sat, 15 Nov 2008 22:07:15 +0000 Subject: [PATCH] added additional keys --- firmware/keycodes.h | 122 ++++++++++++++++++++++++++++++++++++++- firmware/main.c | 4 +- firmware/modelsuntype5.c | 46 +++++++-------- 3 files changed, 146 insertions(+), 26 deletions(-) diff --git a/firmware/keycodes.h b/firmware/keycodes.h index aa238fc..ec6b8c1 100644 --- a/firmware/keycodes.h +++ b/firmware/keycodes.h @@ -130,7 +130,127 @@ enum keycodes { KEY_KP0, // Insert KEY_KPcomma, // Delete KEY_Euro, // non-US \ and | - KEY_Application, + KEY_Application, // windows menu or unix compose + KEY_Power, + KEY_KPequals, // = + KEY_F13, + KEY_F14, + KEY_F15, + KEY_F16, + KEY_F17, + KEY_F18, + KEY_F19, + KEY_F20, + KEY_F21, + KEY_F22, + KEY_F23, + KEY_F24, + KEY_Execute, + KEY_Help, + KEY_Menu, + KEY_Select, + KEY_Stop, + KEY_Again, + KEY_Undo, + KEY_Cut, + KEY_Copy, + KEY_Paste, + KEY_Find, + KEY_Mute, + KEY_Volume_Up, + KEY_Volume_Down, + KEY_Locking_Caps_Lock, + KEY_Locking_Num_Lock, + KEY_Locking_Scroll_Lock, + KEY_KPComma, + KEY_KPEqual_Sign, + KEY_International1, + KEY_International2, + KEY_International3, + KEY_International4, + KEY_International5, + KEY_International6, + KEY_International7, + KEY_International8, + KEY_International9, + KEY_LANG1, + KEY_LANG2, + KEY_LANG3, + KEY_LANG4, + KEY_LANG5, + KEY_LANG6, + KEY_LANG7, + KEY_LANG8, + KEY_LANG9, + KEY_Alternate_Erase, + KEY_SysReq_Attention, + KEY_Cancel, + KEY_Clear, + KEY_Prior, + KEY_Return2, + KEY_Separator, + KEY_Out, + KEY_Oper, + KEY_Clear_Again, + KEY_CrSel_Props, + KEY_ExSel, + Reserved165, + Reserved166, + Reserved167, + Reserved168, + Reserved169, + Reserved170, + Reserved171, + Reserved172, + Reserved173, + Reserved174, + Reserved175, + KEY_KP00, + KEY_KP000, + Thousands_Separator, + Decimal_Separator, + Currency_Unit, + Currency_Subunit, + KEY_KPleftParentheses, + KEY_KPrightParentheses, + KEY_KPleftBraces, + KEY_KPrightBraces, + KEY_KPTab, + KEY_KPBackspace, + KEY_KPA, + KEY_KPB, + KEY_KPC, + KEY_KPD, + KEY_KPE, + KEY_KPF, + KEY_KPXOR, + KEY_KPcircumflex, // ^ + KEY_KPpercent, // % + KEY_KPlesser, // < + KEY_KPgreater, // > + KEY_KPand, // & + KEY_KPandand, // && + KEY_KPor, // | + KEY_KPoror, // || + KEY_KPcolon, // : + KEY_KPhash, // # + KEY_KPSpace, + KEY_KPat, // @ + KEY_KPbang, // ! + KEY_KPMemory_Store, + KEY_KPMemory_Recall, + KEY_KPMemory_Clear, + KEY_KPMemory_Add, + KEY_KPMemory_Subtract, + KEY_KPMemory_Multiply, + KEY_KPMemory_Divide, + KEY_KPplusminus, // +/- + KEY_KPClear, + KEY_KPClear_Entry, + KEY_KPBinary, + KEY_KPOctal, + KEY_KPDecimal, + KEY_KPHexadecimal }; #endif /* __keycodes_h_included__ */ diff --git a/firmware/main.c b/firmware/main.c index 239c893..186842e 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -278,10 +278,10 @@ char PROGMEM usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] = { 0x95, 0x06, // REPORT_COUNT (6) 0x75, 0x08, // REPORT_SIZE (8) 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) + 0x25, 0xff, // LOGICAL_MAXIMUM (255) 0x05, 0x07, // USAGE_PAGE (Keyboard) 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) + 0x29, 0xff, // USAGE_MAXIMUM (255) 0x81, 0x00, // INPUT (Data,Ary,Abs) 0xc0 // END_COLLECTION }; diff --git a/firmware/modelsuntype5.c b/firmware/modelsuntype5.c index bfb9b2a..c0d4021 100644 --- a/firmware/modelsuntype5.c +++ b/firmware/modelsuntype5.c @@ -124,29 +124,29 @@ void setLeds(uint8_t LEDstate) { * \sa modmatrix */ const uint8_t PROGMEM keymatrix[22][13] = { - // 0 1 2 3 4 5 6 7 8 9 10 11 12 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_dot, KEY_F8, KEY_F10, KEY_Reserved, KEY_9, KEY_minus, KEY_P, KEY_K}, // 0 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_slash, KEY_equals, KEY_F11, KEY_Reserved, KEY_0, KEY_lbracket, KEY_semicolon, KEY_L}, // 1 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_LeftArrow, KEY_DownArrow, KEY_grave, KEY_F12, KEY_Reserved, KEY_Euro, KEY_DELETE, KEY_rbracket, KEY_apostroph}, // 2 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_RightArrow, KEY_UpArrow, KEY_Insert, KEY_PrintScreen, KEY_Reserved, KEY_NumLock, KEY_DeleteForward, KEY_Return, KEY_KP4}, // 3 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KP2, KEY_KP5, KEY_ScrollLock, KEY_Reserved /*mute*/, KEY_Reserved, KEY_KPslash, KEY_Home, KEY_End, KEY_KP7}, // 4 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KP3, KEY_KP6, KEY_Pause, KEY_Reserved /*vol-*/, KEY_Reserved, KEY_KPasterisk, KEY_PageUp, KEY_PageDown, KEY_KP8}, // 5 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KPcomma, KEY_KP0, KEY_KPminus, KEY_Reserved /*vol+*/, KEY_Reserved, KEY_KP9, KEY_KPplus, KEY_KPenter, KEY_KP1}, // 6 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 7 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved /*compose*/, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 8 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved /*power*/, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 9 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 10 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 11 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_capslock, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 12 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved /*find*/, KEY_Reserved /*open*/, KEY_ESCAPE, KEY_Reserved /*help*/, KEY_Reserved, KEY_Reserved /*stop*/, KEY_Reserved /*props*/, KEY_Tab, KEY_Reserved /*front*/}, // 13 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 14 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved /*cut*/, KEY_Reserved /*paste*/, KEY_1, KEY_Reserved /*any*/, KEY_Reserved, KEY_Reserved /*again*/, KEY_Reserved /*undo*/ , KEY_Q, KEY_Reserved /*copy*/}, // 15 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Z, KEY_2, KEY_F1, KEY_Reserved, KEY_3, KEY_E, KEY_W, KEY_D}, // 16 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_C, KEY_X, KEY_4, KEY_F2, KEY_Reserved, KEY_5, KEY_R, KEY_F, KEY_A}, // 17 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_V, KEY_N, KEY_F3, KEY_F5, KEY_Reserved, KEY_6, KEY_T, KEY_G, KEY_S}, // 18 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_B, KEY_M, KEY_F4, KEY_F6, KEY_Reserved, KEY_7, KEY_U, KEY_Y, KEY_H}, // 19 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 20 - {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Spacebar, KEY_comma, KEY_F7, KEY_F9, KEY_Reserved, KEY_8, KEY_O, KEY_I, KEY_J}, // 21 + // 0 1 2 3 4 5 6 7 8 9 10 11 12 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_dot, KEY_F8, KEY_F10, KEY_Reserved, KEY_9, KEY_minus, KEY_P, KEY_K}, // 0 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_slash, KEY_equals, KEY_F11, KEY_Reserved, KEY_0, KEY_lbracket, KEY_semicolon, KEY_L}, // 1 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_LeftArrow, KEY_DownArrow, KEY_grave, KEY_F12, KEY_Reserved, KEY_Euro, KEY_DELETE, KEY_rbracket, KEY_apostroph}, // 2 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_RightArrow, KEY_UpArrow, KEY_Insert, KEY_PrintScreen, KEY_Reserved, KEY_NumLock, KEY_DeleteForward, KEY_Return, KEY_KP4}, // 3 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KP2, KEY_KP5, KEY_ScrollLock, KEY_Mute, KEY_Reserved, KEY_KPslash, KEY_Home, KEY_End, KEY_KP7}, // 4 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KP3, KEY_KP6, KEY_Pause, KEY_Volume_Down, KEY_Reserved, KEY_KPasterisk, KEY_PageUp, KEY_PageDown, KEY_KP8}, // 5 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_KPcomma, KEY_KP0, KEY_KPminus, KEY_Volume_Up, KEY_Reserved, KEY_KP9, KEY_KPplus, KEY_KPenter, KEY_KP1}, // 6 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 7 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Application /*compose*/, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 8 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Power, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 9 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 10 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 11 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_capslock, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 12 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Find, KEY_Select /*open*/, KEY_ESCAPE, KEY_Help, KEY_Reserved, KEY_Stop, KEY_Menu /*props*/, KEY_Tab, KEY_Execute /*front*/}, // 13 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 14 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Cut, KEY_Paste, KEY_1, KEY_Cancel /*any*/, KEY_Reserved, KEY_Again, KEY_Undo, KEY_Q, KEY_Copy}, // 15 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Z, KEY_2, KEY_F1, KEY_Reserved, KEY_3, KEY_E, KEY_W, KEY_D}, // 16 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_C, KEY_X, KEY_4, KEY_F2, KEY_Reserved, KEY_5, KEY_R, KEY_F, KEY_A}, // 17 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_V, KEY_N, KEY_F3, KEY_F5, KEY_Reserved, KEY_6, KEY_T, KEY_G, KEY_S}, // 18 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_B, KEY_M, KEY_F4, KEY_F6, KEY_Reserved, KEY_7, KEY_U, KEY_Y, KEY_H}, // 19 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved}, // 20 + {KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Reserved, KEY_Spacebar, KEY_comma, KEY_F7, KEY_F9, KEY_Reserved, KEY_8, KEY_O, KEY_I, KEY_J}, // 21 }; /**