]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/converter/usb_usb/usb_usb.h
restructure converters (#1825)
[qmk_firmware.git] / keyboards / converter / usb_usb / usb_usb.h
1 /*
2 Copyright 2017 Balz Guenat <balz.guenat@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
18 #ifndef USB_USB_H
19 #define USB_USB_H
20
21 #include "quantum.h"
22
23 #define ______ KC_TRNS
24
25 /*         ,---------------. ,---------------. ,---------------.
26  *         |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|
27  * ,---.   |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------.
28  * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help  |
29  * `---'   `---------------' `---------------' `---------------' `-----------' `---------------' `-------'
30  * ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------.
31  * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -| |Stp|Agn|
32  * |-----------------------------------------------------------| |-----------| |---------------| |-------|
33  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  | |Del|End|PgD| |  7|  8|  9|  +| |Mnu|Und|
34  * |-----------------------------------------------------------| `-----------' |---------------| |-------|
35  * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|Retn|               |  4|  5|  6|KP,| |Sel|Cpy|
36  * |-----------------------------------------------------------|     ,---.     |---------------| |-------|
37  * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /| RO|Shift |     |Up |     |  1|  2|  3|KP=| |Exe|Pst|
38  * |-----------------------------------------------------------| ,-----------. |---------------| |-------|
39  * |Ctl|Gui|Alt|MHEN|HNJ| Space  |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| |  0    |  .|Ent| |Fnd|Cut|
40  * `-----------------------------------------------------------' `-----------' `---------------' `-------'
41  *
42  *
43  * App:         Windows Menu key
44  * Gui:         Windows key, Mac ⌘ key or Meta key
45  *
46  * Pwr:         Power for Unix and Mac
47  * VDn,Vup,Mut: Volume control for Unix and Mac
48  * Stp,Agn..:   for Unix
49  *
50  * KP,:         Brazilian Keypad Comma
51  * KP=:         Keypad = for Mac
52  * <,#:         ISO keys(UK legend)
53  * JPY:         Japanese Yen(¥)
54  * RO:          Japanese ろ or Brazilian /
55  * MHEN:        Japanese 無変換 Non Conversion
56  * HENK:        Japanese 変換 Conversion
57  * KANA:        Japanese かな Hiragana/Katakana
58  *              https://en.wikipedia.org/wiki/Keyboard_layout#Japanese
59  * H/E:         Korean 한/영 Hangul/English
60  * HNJ:         Korean 한자 Hanja
61  *              https://en.wikipedia.org/wiki/Keyboard_layout#Hangul_.28for_Korean.29
62  *
63  * TODO: use same keycode to pass through instead of KC_NO?
64  */
65 #define KEYMAP_ALL( \
66             K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,                                              \
67     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  K81,K80,K7F,K66, K75,     \
68     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, K78,K79, \
69     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, K76,K7A, \
70     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,K85, K77,K7C, \
71     KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    K87,KE5,      K52,      K59,K5A,K5B,K67, K74,K7D, \
72     KE0,KE3,KE2,K8B,K91,    K2C,    K90,K8A,K88,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, K7E,K7B  \
73 ) { \
74     { KC_NO, KC_NO, KC_NO, KC_NO, K04,   K05,   K06,   K07,      /* 00-07 */ \
75       K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E,   K0F    }, /* 08-0F */ \
76     { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,      /* 10-17 */ \
77       K18,   K19,   K1A,   K1B,   K1C,   K1D,   K1E,   K1F    }, /* 18-1F */ \
78     { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,      /* 20-27 */ \
79       K28,   K29,   K2A,   K2B,   K2C,   K2D,   K2E,   K2F    }, /* 28-2F */ \
80     { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,      /* 30-37 */ \
81       K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E,   K3F    }, /* 38-3F */ \
82     { K40,   K41,   K42,   K43,   K44,   K45,   K46,   K47,      /* 40-47 */ \
83       K48,   K49,   K4A,   K4B,   K4C,   K4D,   K4E,   K4F    }, /* 48-4F */ \
84     { K50,   K51,   K52,   K53,   K54,   K55,   K56,   K57,      /* 50-57 */ \
85       K58,   K59,   K5A,   K5B,   K5C,   K5D,   K5E,   K5F    }, /* 58-5F */ \
86     { K60,   K61,   K62,   K63,   K64,   K65,   K66,   K67,      /* 60-67 */ \
87       K68,   K69,   K6A,   K6B,   K6C,   K6D,   K6E,   K6F    }, /* 68-6F */ \
88     { K70,   K71,   K72,   K73,   K74,   K75,   K76,   K77,      /* 70-77 */ \
89       K78,   K79,   K7A,   K7B,   K7C,   K7D,   K7E,   K7F    }, /* 78-7F */ \
90     { K80,   K81,   KC_NO, KC_NO, KC_NO, K85,   KC_NO, K87,      /* 80-87 */ \
91       K88,   K89,   K8A,   K8B,   KC_NO, KC_NO, KC_NO, KC_NO  }, /* 88-8F */ \
92     { K90,   K91,   KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* 90-97 */ \
93       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* 98-9F */ \
94     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* A0-A7 */ \
95       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* A8-AF */ \
96     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* B0-B7 */ \
97       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* B8-BF */ \
98     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* C0-C7 */ \
99       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* C8-CF */ \
100     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* D0-D7 */ \
101       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* D8-DF */ \
102     { KE0,   KE1,   KE2,   KE3,   KE4,   KE5,   KE6,   KE7,      /* E0-E7 */ \
103       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* E8-EF */ \
104     { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,    /* F0-F7 */ \
105       KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO  }, /* F8-FF */ \
106 }
107
108 /* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
109  * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
110  * `---'   `---------------' `---------------' `---------------' `-----------'
111  * ,-----------------------------------------------------------. ,-----------. ,---------------.
112  * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
113  * |-----------------------------------------------------------| |-----------| |---------------|
114  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  | |Del|End|PgD| |  7|  8|  9|  +|
115  * |-----------------------------------------------------------| `-----------' |-----------|   |
116  * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  Return|               |  4|  5|  6|  +|
117  * |-----------------------------------------------------------|     ,---.     |---------------|
118  * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|   |
119  * |-----------------------------------------------------------| ,-----------. |-----------|   |
120  * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|Ent|
121  * `-----------------------------------------------------------' `-----------' `---------------'
122  */
123 #define KEYMAP( \
124     K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                   \
125     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
126     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31,  K4C,K4D,K4E,  K5F,K60,K61,     \
127     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K28,                K5C,K5D,K5E,K57, \
128     KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,        KE5,      K52,      K59,K5A,K5B,     \
129     KE0,KE3,KE2,        K2C,                KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58  \
130 ) KEYMAP_ALL( \
131             KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,                                               \
132     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  KC_NO, KC_NO, KC_NO, KC_NO,  KC_NO,      \
133     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,KC_NO, K2A,  K49,K4A,K4B,  K53,K54,K55,K56, KC_NO, KC_NO,  \
134     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, KC_NO, KC_NO,  \
135     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    KC_NO, K28,                K5C,K5D,K5E,KC_NO,  KC_NO, KC_NO,  \
136     KE1,KC_NO, K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    KC_NO, KE5,      K52,      K59,K5A,K5B,KC_NO,  KC_NO, KC_NO,  \
137     KE0,KE3,KE2,KC_NO, KC_NO,     K2C,    KC_NO, KC_NO, KC_NO, KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, KC_NO, KC_NO   \
138 )
139
140 /* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
141  * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
142  * `---'   `---------------' `---------------' `---------------' `-----------'
143  * ,-----------------------------------------------------------. ,-----------. ,---------------.
144  * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
145  * |-----------------------------------------------------------| |-----------| |---------------|
146  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Retn| |Del|End|PgD| |  7|  8|  9|  +|
147  * |------------------------------------------------------`    | `-----------' |-----------|   |
148  * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|    |               |  4|  5|  6|   |
149  * |-----------------------------------------------------------|     ,---.     |---------------|
150  * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|Ent|
151  * |-----------------------------------------------------------| ,-----------. |-----------|   |
152  * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
153  * `-----------------------------------------------------------' `-----------' `---------------'
154  */
155 #define KEYMAP_ISO( \
156     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,  K46,K47,K48,                   \
157     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
158     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K28,  K4C,K4D,K4E,  K5F,K60,K61,K57, \
159     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,K32,                    K5C,K5D,K5E,     \
160     KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    KE5,      K52,      K59,K5A,K5B,K58, \
161     KE0,KE3,KE2,        K2C,                KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63      \
162 ) KEYMAP_ALL( \
163             KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,                                               \
164     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  KC_NO, KC_NO, KC_NO, KC_NO,  KC_NO,      \
165     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,KC_NO, K2A,  K49,K4A,K4B,  K53,K54,K55,K56, KC_NO, KC_NO,  \
166     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K32,  K4C,K4D,K4E,  K5F,K60,K61,K57, KC_NO, KC_NO,  \
167     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,KC_NO,  KC_NO, KC_NO,  \
168     KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    KC_NO, KE5,      K52,      K59,K5A,K5B,KC_NO,  KC_NO, KC_NO,  \
169     KE0,KE3,KE2,KC_NO, KC_NO,     K2C,    KC_NO, KC_NO, KC_NO, KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, KC_NO, KC_NO   \
170 )
171
172 /* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
173  * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
174  * `---'   `---------------' `---------------' `---------------' `-----------'
175  * ,-----------------------------------------------------------. ,-----------. ,---------------.
176  * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  ^|JPY|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
177  * |-----------------------------------------------------------| |-----------| |---------------|
178  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  @|  [| Retn| |Del|End|PgD| |  7|  8|  9|  +|
179  * |------------------------------------------------------`    | `-----------' |-----------|   |
180  * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  ]|    |               |  4|  5|  6|   |
181  * |-----------------------------------------------------------|     ,---.     |---------------|
182  * |Shft    |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /| RO|Shift |     |Up |     |  1|  2|  3|Ent|
183  * |-----------------------------------------------------------| ,-----------. |-----------|   |
184  * |Ctl|Gui|Alt|MHEN|      Space      |HENK|KNA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
185  * `-----------------------------------------------------------' `-----------' `---------------'
186  */
187 #define KEYMAP_JIS( \
188     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                   \
189     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
190     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K28,  K4C,K4D,K4E,  K5F,K60,K61,K57, \
191     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,K32,                        K5C,K5D,K5E,     \
192     KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,        K87,KE5,      K52,      K59,K5A,K5B,K58, \
193     KE0,KE3,KE2,K8B,    K2C,        K8A,K88,KE6,KE7,K65,KE4,      K50,K51,K4F,  K62,    K63      \
194 ) KEYMAP_ALL( \
195             KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,                                               \
196     K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  KC_NO, KC_NO, KC_NO, KC_NO,  KC_NO,      \
197     K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, KC_NO, KC_NO,  \
198     K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K32,  K4C,K4D,K4E,  K5F,K60,K61,K57, KC_NO, KC_NO,  \
199     K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,KC_NO,  KC_NO, KC_NO,  \
200     KE1,KC_NO, K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    K87,KE5,      K52,      K59,K5A,K5B,KC_NO,  KC_NO, KC_NO,  \
201     KE0,KE3,KE2,K8B,KC_NO,     K2C,    KC_NO, K8A,K88,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, KC_NO, KC_NO   \
202 )
203 #endif