aboutsummaryrefslogtreecommitdiff
path: root/common/usb_keycodes.h
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2012-10-09 13:48:39 +0900
committertmk <nobody@nowhere>2012-10-17 15:55:37 +0900
commit16ba9bda5601ebef6e4db04a5ad079af32370815 (patch)
treea93e18f16ebeb0933263dd6ed9e9e545edeaf367 /common/usb_keycodes.h
parente9af482690152f1beedbbb915791eccd2d5c22d1 (diff)
downloadqmk_firmware-16ba9bda5601ebef6e4db04a5ad079af32370815.tar.gz
qmk_firmware-16ba9bda5601ebef6e4db04a5ad079af32370815.zip
Add consumer/system usage support.
Diffstat (limited to 'common/usb_keycodes.h')
-rw-r--r--common/usb_keycodes.h41
1 files changed, 26 insertions, 15 deletions
diff --git a/common/usb_keycodes.h b/common/usb_keycodes.h
index 61d6bf002..6a4437418 100644
--- a/common/usb_keycodes.h
+++ b/common/usb_keycodes.h
@@ -24,15 +24,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24 24
25 25
26#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED) 26#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED)
27#define IS_ANY(code) (KB_A <= (code)) 27#define IS_ANY(code) (KB_A <= (code) && (code) <= 0xFF)
28#define IS_KEY(code) (KB_A <= (code) && (code) <= KB_EXSEL) 28#define IS_KEY(code) (KB_A <= (code) && (code) <= KB_EXSEL)
29#define IS_MOD(code) (KB_LCTRL <= (code) && (code) <= KB_RGUI) 29#define IS_MOD(code) (KB_LCTRL <= (code) && (code) <= KB_RGUI)
30
30#define IS_FN(code) (KB_FN0 <= (code) && (code) <= KB_FN7) 31#define IS_FN(code) (KB_FN0 <= (code) && (code) <= KB_FN7)
31#define IS_MOUSEKEY(code) (KB_MS_UP <= (code) && (code) <= KB_MS_WH_RIGHT) 32#define IS_MOUSEKEY(code) (KB_MS_UP <= (code) && (code) <= KB_MS_WH_RIGHT)
32#define IS_MOUSEKEY_MOVE(code) (KB_MS_UP <= (code) && (code) <= KB_MS_RIGHT) 33#define IS_MOUSEKEY_MOVE(code) (KB_MS_UP <= (code) && (code) <= KB_MS_RIGHT)
33#define IS_MOUSEKEY_BUTTON(code) (KB_MS_BTN1 <= (code) && (code) <= KB_MS_BTN5) 34#define IS_MOUSEKEY_BUTTON(code) (KB_MS_BTN1 <= (code) && (code) <= KB_MS_BTN5)
34#define IS_MOUSEKEY_WHEEL(code) (KB_MS_WH_UP <= (code) && (code) <= KB_MS_WH_RIGHT) 35#define IS_MOUSEKEY_WHEEL(code) (KB_MS_WH_UP <= (code) && (code) <= KB_MS_WH_RIGHT)
35 36
37#define IS_SPECIAL(code) ((0xB0 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF))
38#define IS_CONSUMER(code) (KB_MUTE <= (code) && (code) <= KB_WFAV)
39#define IS_SYSTEM(code) (KB_POWER <= (code) && (code) <= KB_WAKE)
40
36#define MOD_BIT(code) (1<<((code) & 0x07)) 41#define MOD_BIT(code) (1<<((code) & 0x07))
37#define FN_BIT(code) (1<<((code) - KB_FN0)) 42#define FN_BIT(code) (1<<((code) - KB_FN0))
38#define FN_INDEX(code) ((code) - KB_FN0) 43#define FN_INDEX(code) ((code) - KB_FN0)
@@ -137,14 +142,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
137 142
138 143
139/* Special keycode */ 144/* Special keycode */
145/* NOTE: 0xA5-DF and 0xE8-FF can be used for internal special purpose */
140enum special_keycodes { 146enum special_keycodes {
141 /* System Control */ 147 /* System Control */
142 KB_SYSTEM_POWER = 0xB0, 148 KB_SYSTEM_POWER = 0xA5,
143 KB_SYSTEM_SLEEP, 149 KB_SYSTEM_SLEEP,
144 KB_SYSTEM_WAKE, 150 KB_SYSTEM_WAKE, /* 0xA7 */
151 /* 0xA8-AF */
145 152
146 /* Consumer Page */ 153 /* Consumer Page */
147 KB_AUDIO_MUTE, 154 KB_AUDIO_MUTE = 0xB0,
148 KB_AUDIO_VOL_UP, 155 KB_AUDIO_VOL_UP,
149 KB_AUDIO_VOL_DOWN, 156 KB_AUDIO_VOL_DOWN,
150 KB_MEDIA_NEXT_TRACK, 157 KB_MEDIA_NEXT_TRACK,
@@ -157,13 +164,14 @@ enum special_keycodes {
157 KB_MY_COMPUTER, 164 KB_MY_COMPUTER,
158 KB_WWW_SEARCH, 165 KB_WWW_SEARCH,
159 KB_WWW_HOME, 166 KB_WWW_HOME,
160 KB_WWW_BACK, /* 0xC0 */ 167 KB_WWW_BACK,
161 KB_WWW_FORWARD, 168 KB_WWW_FORWARD,
162 KB_WWW_STOP, 169 KB_WWW_STOP,
163 KB_WWW_REFRESH, 170 KB_WWW_REFRESH, /* 0xC0 */
164 KB_WWW_FAVORITES, 171 KB_WWW_FAVORITES, /* 0xC1 */
172 /* 0xC2-DF vacant for future use */
165 173
166 /* reserve 0xE0-E7 for Modifiers */ 174 /* 0xE0-E7 for Modifiers. DO NOT USE. */
167 175
168 /* Layer Switching */ 176 /* Layer Switching */
169 KB_FN0 = 0xE8, 177 KB_FN0 = 0xE8,
@@ -173,7 +181,7 @@ enum special_keycodes {
173 KB_FN4, 181 KB_FN4,
174 KB_FN5, 182 KB_FN5,
175 KB_FN6, 183 KB_FN6,
176 KB_FN7, 184 KB_FN7, /* 0xEF */
177 185
178 /* Mousekey */ 186 /* Mousekey */
179 KB_MS_UP = 0xF0, 187 KB_MS_UP = 0xF0,
@@ -189,11 +197,13 @@ enum special_keycodes {
189 KB_MS_WH_UP, 197 KB_MS_WH_UP,
190 KB_MS_WH_DOWN, 198 KB_MS_WH_DOWN,
191 KB_MS_WH_LEFT, 199 KB_MS_WH_LEFT,
192 KB_MS_WH_RIGHT, 200 KB_MS_WH_RIGHT, /* 0xFC */
201 /* 0xFD-FF vacant for future use */
193}; 202};
194 203
204/* USB HID Keyboard/Keypad Usage(0x07) */
195enum keycodes { 205enum keycodes {
196 KB_NO = 0, 206 KB_NO = 0x00,
197 KB_ROLL_OVER, 207 KB_ROLL_OVER,
198 KB_POST_FAIL, 208 KB_POST_FAIL,
199 KB_UNDEFINED, 209 KB_UNDEFINED,
@@ -357,9 +367,10 @@ enum keycodes {
357 KB_OPER, 367 KB_OPER,
358 KB_CLEAR_AGAIN, 368 KB_CLEAR_AGAIN,
359 KB_CRSEL, 369 KB_CRSEL,
360 KB_EXSEL, 370 KB_EXSEL, /* 0xA4 */
371
372 /* NOTE: 0xA5-DF are used for internal special purpose */
361 373
362 /* NOTE: 0xB0-DF are used as special_keycodes */
363#if 0 374#if 0
364 KB_KP_00 = 0xB0, 375 KB_KP_00 = 0xB0,
365 KB_KP_000, 376 KB_KP_000,
@@ -406,7 +417,7 @@ enum keycodes {
406 KB_KP_BINARY, 417 KB_KP_BINARY,
407 KB_KP_OCTAL, 418 KB_KP_OCTAL,
408 KB_KP_DECIMAL, 419 KB_KP_DECIMAL,
409 KB_KP_HEXADECIMAL, 420 KB_KP_HEXADECIMAL, /* 0xDD */
410#endif 421#endif
411 422
412 /* Modifiers */ 423 /* Modifiers */
@@ -419,7 +430,7 @@ enum keycodes {
419 KB_RALT, 430 KB_RALT,
420 KB_RGUI, 431 KB_RGUI,
421 432
422 /* NOTE: 0xE8-FF are used as special_keycodes */ 433 /* NOTE: 0xE8-FF are used for internal special purpose */
423}; 434};
424 435
425#endif /* USB_KEYCODES_H */ 436#endif /* USB_KEYCODES_H */