aboutsummaryrefslogtreecommitdiff
path: root/converter/adb_usb
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-02-03 21:57:46 +0900
committertmk <nobody@nowhere>2013-02-03 22:06:52 +0900
commit9a72c7b8a2e2f7ed2cd239ad3308c4b4dbc29ff0 (patch)
tree3e03742ea7c0055a47f6dde817dd60786e433eef /converter/adb_usb
parente6836c3f6df23eb82188bacca15bb0614a0f8b45 (diff)
downloadqmk_firmware-9a72c7b8a2e2f7ed2cd239ad3308c4b4dbc29ff0.tar.gz
qmk_firmware-9a72c7b8a2e2f7ed2cd239ad3308c4b4dbc29ff0.zip
Support for ISO/JIS keys on ADB(Issue#22)
- ISO/JIS specific keys support.(Not tested :) - Learned how to convert ADB into HID code from: http://www.opensource.apple.com/source/IOHIDFamily/IOHIDFamily-421.18.3/IOHIDFamily/Cosmo_USB2ADB.c - Left of 1 key generates 0x0A(ADB scan code) on German layout AEKII.
Diffstat (limited to 'converter/adb_usb')
-rw-r--r--converter/adb_usb/keymap.c80
1 files changed, 64 insertions, 16 deletions
diff --git a/converter/adb_usb/keymap.c b/converter/adb_usb/keymap.c
index 25f851859..bde829de3 100644
--- a/converter/adb_usb/keymap.c
+++ b/converter/adb_usb/keymap.c
@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18/* 18/*
19 * Keymap for ADB keyboard 19 * Keymap for ADB keyboard
20 */ 20 */
21#include <stdint.h> 21#include <stdint.h>
@@ -31,36 +31,84 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31 31
32#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) 32#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
33 33
34// Convert physical keyboard layout to matrix array. 34#define KEYMAP_ALL( \
35// This is a macro to define keymap easily in keyboard layout form.
36/* Apple Extended Keyboard */
37#define KEYMAP( \
38 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \ 35 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
39 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \ 36 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
40 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \ 37 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
41 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \ 38 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
42 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \ 39 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
43 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C \ 40 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
41 /* for ISO/JIS keyboard */ \
42 K0A, /* NON-US \ and | 0x64 */ \
43 K34, /* Keypad ENTER 0x58 */ \
44 K40, /* F17 0x6C */ \
45 K44, /* F18? 0x6d */ \
46 K4F, /* F18 0x6d */ \
47 K50, /* F19 0x6e */ \
48 K5A, /* F20 0x6f */ \
49 K5D, /* INTL3(Yen) 0x89 */ \
50 K5E, /* INTL1(Ro) 0x87 */ \
51 K5F, /* Keypad Comma 0x85 */ \
52 K66, /* LANG2(Eisu) 0x91 */ \
53 K68, /* LANG1(Kana) 0x90 */ \
54 K6A, /* F16 0x6B */ \
55 K6E /* Application 0x65 */ \
44) { \ 56) { \
45 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \ 57 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
46 { KC_##K08, KC_##K09, KC_NO, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \ 58 { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, \
47 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \ 59 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
48 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \ 60 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, \
49 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \ 61 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
50 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \ 62 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
51 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_NO, KC_##K35, KC_##K36, KC_##K37 }, \ 63 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
52 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \ 64 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_NO }, \
53 { KC_NO, KC_##K41, KC_NO, KC_##K43, KC_NO, KC_##K45, KC_NO, KC_##K47 }, \ 65 { KC_##K40, KC_##K41, KC_NO, KC_##K43, KC_##K44, KC_##K45, KC_NO, KC_##K47 }, \
54 { KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_NO }, \ 66 { KC_NO, KC_NO, KC_NO, KC_##K4B, KC_##K4C, KC_NO, KC_##K4E, KC_##K4F }, \
55 { KC_NO, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \ 67 { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \
56 { KC_##K58, KC_##K59, KC_NO, KC_##K5B, KC_##K5C, KC_NO, KC_NO, KC_NO }, \ 68 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, \
57 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_NO, KC_##K67 }, \ 69 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
58 { KC_NO, KC_##K69, KC_NO, KC_##K6B, KC_NO, KC_##K6D, KC_NO, KC_##K6F }, \ 70 { KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_##K6D, KC_##K6E, KC_##K6F }, \
59 { KC_NO, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \ 71 { KC_NO, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 }, \
60 { KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_NO, KC_##K7F } \ 72 { KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_NO, KC_##K7F } \
61} 73}
62 74
63 75
76
77// Convert physical keyboard layout to matrix array.
78// This is a macro to define keymap easily in keyboard layout form.
79/* Apple Extended Keyboard */
80#define KEYMAP_EXTENDED_US( \
81 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
82 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
83 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
84 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
85 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
86 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C \
87) KEYMAP_ALL( \
88 K35, K7A,K78,K63,K76, K60,K61,K62,K64, K65,K6D,K67,K6F, K69,K6B,K71, K7F, \
89 K32,K12,K13,K14,K15,K17,K16,K1A,K1C,K19,K1D,K1B,K18,K33, K72,K73,K74, K47,K51,K4B,K43, \
90 K30,K0C,K0D,K0E,K0F,K11,K10,K20,K22,K1F,K23,K21,K1E,K2A, K75,K77,K79, K59,K5B,K5C,K4E, \
91 K39,K00,K01,K02,K03,K05,K04,K26,K28,K25,K29,K27, K24, K56,K57,K58,K45, \
92 K38,K06,K07,K08,K09,K0B,K2D,K2E,K2B,K2F,K2C, K7B, K3E, K53,K54,K55, \
93 K36,K3A,K37, K31, K7C,K7D, K3B,K3D,K3C, K52, K41,K4C, \
94 /* for ISO/JIS keyboard */ \
95 NONUS_BSLASH, /* NON-US \ and | 0x64 */ \
96 KP_ENTER, /* Keypad ENTER 0x58 */ \
97 F17, /* F17 0x6C */ \
98 F18, /* F18? 0x6d */ \
99 F18, /* F18 0x6d */ \
100 F19, /* F19 0x6e */ \
101 F20, /* F20 0x6f */ \
102 INT3, /* INTL3(Yen) 0x89 */ \
103 INT1, /* INTL1(Ro) 0x87 */ \
104 KP_COMMA, /* Keypad Comma 0x85 */ \
105 LANG2, /* LANG2(Eisu) 0x91 */ \
106 LANG1, /* LANG1(Kana) 0x90 */ \
107 F16, /* F16 0x6B */ \
108 APPLICATION /* Application 0x65 */ \
109)
110
111
64// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed. 112// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
65static const uint8_t PROGMEM fn_layer[] = { 113static const uint8_t PROGMEM fn_layer[] = {
66 0, // Fn0 114 0, // Fn0
@@ -103,9 +151,9 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
103 * |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| | 151 * |Ctrl |Gui |Alt | Space | | | | |Lef|Dow|Rig| | 0| .| |
104 * `-----------------------------------------------------------' `-----------' `---------------' 152 * `-----------------------------------------------------------' `-----------' `---------------'
105 */ 153 */
106 KEYMAP( 154 KEYMAP_EXTENDED_US(
107 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, PWR, 155 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, PWR,
108 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,EQL, PSLS,PAST, 156 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PEQL,PSLS,PAST,
109 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS, 157 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, PMNS,
110 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS, 158 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
111 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, 159 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,