]> git.friedersdorff.com Git - max/tmk_keyboard.git/blob - converter/xt_usb/keymap_common.h
Merge pull request #1 from alh84001/patch-1
[max/tmk_keyboard.git] / converter / xt_usb / keymap_common.h
1 /*
2 Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #ifndef KEYMAP_COMMON_H
18 #define KEYMAP_COMMON_H
19
20 #include <stdint.h>
21 #include <stdbool.h>
22 #include "keycode.h"
23 #include "action.h"
24 #include "action_macro.h"
25 #include "report.h"
26 #include "print.h"
27 #include "debug.h"
28 #include "keymap.h"
29
30
31 // 32*8(256) byte array which converts PS/2 code into USB code
32 extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
33 extern const uint16_t fn_actions[];
34
35 /* All keys */
36 #define KEYMAP_ALL( \
37     K00,    K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D, K0E,K0F,K0G,                   \
38     K10,K11,K12,K13,K14,K15,K16,K17,K18,K19,K1A,K1B,K1C,K1D, K1E,K1F,K1G,  K1H,K1I,K1J,K1K, \
39     K20,K21,K22,K23,K24,K25,K26,K27,K28,K29,K2A,K2B,K2C,K2D, K2E,K2F,K2G,  K2H,K2I,K2J,     \
40     K30,K31,K32,K33,K34,K35,K36,K37,K38,K39,K3A,K3B,    K3D,               K3H,K3I,K3J,K3K, \
41     K40,K41,K42,K43,K44,K45,K46,K47,K48,K49,K4A,        K4D,     K4F,      K4H,K4I,K4J,     \
42     K50,K51,K52,        K55,                K5A,K5B,K5C,K5D, K5E,K5F,K5G,  K5H,    K5J,K5K, \
43                                                                                             \
44     K60, K61, K62,           /* System Power, Sleep, Wake */                                \
45     K70, K71, K72,           /* Mute, Volume Up, Volume Down */                             \
46     K80, K81, K82, K83, K84, /* Next, Previous, Stop, Pause, Media Select */                \
47     K90, K91, K92,           /* Mail, Calculator, My Computer */                            \
48     KA0, KA1, KA2, KA3,      /* WWW Search, Home, Back, Forward */                          \
49     KB0, KB1, KB2            /* WWW Stop, Refresh, Favorites */                             \
50 ) { \
51     { KC_NO,    KC_##K00, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16 }, \
52     { KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K20 }, \
53     { KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28 }, \
54     { KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K3D, KC_##K50, KC_##K31, KC_##K32 }, \
55     { KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A }, \
56     { KC_##K3B, KC_##K10, KC_##K40, KC_##K2D, KC_##K41, KC_##K42, KC_##K43, KC_##K44 }, \
57     { KC_##K45, KC_##K46, KC_##K47, KC_##K48, KC_##K49, KC_##K4A, KC_##K4D, KC_##K1J }, \
58     { KC_##K52, KC_##K55, KC_##K30, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06 }, \
59     { KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K1H, KC_##K0F, KC_##K2H }, \
60     { KC_##K2I, KC_##K2J, KC_##K1K, KC_##K3H, KC_##K3I, KC_##K3J, KC_##K3K, KC_##K4H }, \
61     { KC_##K4I, KC_##K4J, KC_##K5H, KC_##K5J, KC_##K5K, KC_##K5D, KC_##K1I, KC_##K0C }, \
62     { KC_##K0D, KC_##K5A, KC_##K80, KC_##K51, KC_##K5B, KC_##K5C, KC_##K60, KC_##K61 }, \
63     { KC_##K70, KC_##K91, KC_##K83, KC_##K62, KC_##K82, KC_##KA0, KC_##KB2, KC_##KB1 }, \
64     { KC_##KB0, KC_##KA3, KC_##KA2, KC_##K92, KC_##K90, KC_##K84, KC_##K81, KC_##K1F }, \
65     { KC_##K4F, KC_##K1G, KC_##K72, KC_##K5E, KC_##K71, KC_##K5G, KC_##KA1, KC_##K2F }, \
66     { KC_##K5F, KC_##K2G, KC_##K1E, KC_##K2E, KC_##K0E, KC_##K0G, KC_NO   , KC_NO    }  \
67 }
68
69 /* US layout */
70 #define KEYMAP( \
71     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,     KFC,K7E,KFE,                   \
72     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
73     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA,  K6C,K75,K7D,     \
74     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,    K5A,               K6B,K73,K74,K79, \
75     K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,        K59,     KF5,      K69,K72,K7A,     \
76     K14,K9F,K11,        K29,                K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA  \
77 ) \
78 KEYMAP_ALL( \
79     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,     KFC,K7E,KFE,                   \
80     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
81     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA,  K6C,K75,K7D,     \
82     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,    K5A,               K6B,K73,K74,K79, \
83     K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,        K59,     KF5,      K69,K72,K7A,     \
84     K14,K9F,K11,        K29,                K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA, \
85                                                                                             \
86     SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE,                                                \
87     AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN,                                               \
88     MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT,         \
89     MAIL, CALCULATOR, MY_COMPUTER,                                                          \
90     WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD,                                            \
91     WWW_STOP, WWW_REFRESH, WWW_FAVORITES                                                    \
92 )
93
94 /* ISO layout */
95 #define KEYMAP_ISO( \
96     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,     KFC,K7E,KFE,                   \
97     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
98     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,     KF1,KE9,KFA,  K6C,K75,K7D,     \
99     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D,K5A,               K6B,K73,K74,K79, \
100     K12,K61,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,    K59,     KF5,      K69,K72,K7A,     \
101     K14,K9F,K11,        K29,                K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA  \
102 ) \
103 KEYMAP_ALL( \
104     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,     KFC,K7E,KFE,                   \
105     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
106     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA,  K6C,K75,K7D,     \
107     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,    K5A,               K6B,K73,K74,K79, \
108     K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,        K59,     KF5,      K69,K72,K7A,     \
109     K14,K9F,K11,        K29,                K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA, \
110                                                                                             \
111     SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE,                                                \
112     AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN,                                               \
113     MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT,         \
114     MAIL, CALCULATOR, MY_COMPUTER,                                                          \
115     WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD,                                            \
116     WWW_STOP, WWW_REFRESH, WWW_FAVORITES                                                    \
117 )
118
119 /* JIS layout */
120 #define KEYMAP_JIS( \
121     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,         KFC,K7E,KFE,                   \
122     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K6A,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
123     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,         KF1,KE9,KFA,  K6C,K75,K7D,     \
124     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,K5D,    K5A,               K6B,K73,K74,K79, \
125     K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,K51,        K59,     KF5,      K69,K72,K7A,     \
126     K14,K9F,K11,    K67,K29,K64,K13,            K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA  \
127 ) \
128 KEYMAP_ALL( \
129     K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07,     KFC,K7E,KFE,                   \
130     K0E,K16,K1E,K26,K25,K2E,K36,K3D,K3E,K46,K45,K4E,K55,K66, KF0,KEC,KFD,  K77,KCA,K7C,K7B, \
131     K0D,K15,K1D,K24,K2D,K2C,K35,K3C,K43,K44,K4D,K54,K5B,K5D, KF1,KE9,KFA,  K6C,K75,K7D,     \
132     K58,K1C,K1B,K23,K2B,K34,K33,K3B,K42,K4B,K4C,K52,    K5A,               K6B,K73,K74,K79, \
133     K12,K1A,K22,K21,K2A,K32,K31,K3A,K41,K49,K4A,        K59,     KF5,      K69,K72,K7A,     \
134     K14,K9F,K11,        K29,                K91,KA7,KAF,K94, KEB,KF2,KF4,  K70,    K71,KDA, \
135                                                                                             \
136     SYSTEM_POWER, SYSTEM_SLEEP, SYSTEM_WAKE,                                                \
137     AUDIO_MUTE, AUDIO_VOL_UP, AUDIO_VOL_DOWN,                                               \
138     MEDIA_NEXT_TRACK, MEDIA_PREV_TRACK, MEDIA_STOP, MEDIA_PLAY_PAUSE, MEDIA_SELECT,         \
139     MAIL, CALCULATOR, MY_COMPUTER,                                                          \
140     WWW_SEARCH, WWW_HOME, WWW_BACK, WWW_FORWARD,                                            \
141     WWW_STOP, WWW_REFRESH, WWW_FAVORITES                                                    \
142 )
143
144 #endif