/*
-Copyright 2011,2012 Jun Wako <wakojun@gmail.com>
+Copyright 2011,2012,2020 Jun Wako <wakojun@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#define MOUSE_BTN3 (1<<2)
#define MOUSE_BTN4 (1<<3)
#define MOUSE_BTN5 (1<<4)
+#define MOUSE_BTN6 (1<<5)
+#define MOUSE_BTN7 (1<<6)
+#define MOUSE_BTN8 (1<<7)
-/* Consumer Page(0x0C)
- * following are supported by Windows: http://msdn.microsoft.com/en-us/windows/hardware/gg463372.aspx
+
+/*
+ * USB HID Specifications
+ * https://www.usb.org/hid#approved-usage-table-review-requests
+ */
+
+/*
+ * Consumer Page(0x0C)
+ * https://github.com/tmk/tmk_keyboard/issues/370
*/
#define AUDIO_MUTE 0x00E2
#define AUDIO_VOL_UP 0x00E9
#define TRANSPORT_STOP_EJECT 0x00CC
#define TRANSPORT_PLAY_PAUSE 0x00CD
/* application launch */
-#define AL_CC_CONFIG 0x0183
-#define AL_EMAIL 0x018A
-#define AL_CALCULATOR 0x0192
-#define AL_LOCAL_BROWSER 0x0194
+#define APPLAUNCH_CC_CONFIG 0x0183
+#define APPLAUNCH_EMAIL 0x018A
+#define APPLAUNCH_CALCULATOR 0x0192
+#define APPLAUNCH_LOCAL_BROWSER 0x0194
/* application control */
-#define AC_SEARCH 0x0221
-#define AC_HOME 0x0223
-#define AC_BACK 0x0224
-#define AC_FORWARD 0x0225
-#define AC_STOP 0x0226
-#define AC_REFRESH 0x0227
-#define AC_BOOKMARKS 0x022A
+#define APPCONTROL_SEARCH 0x0221
+#define APPCONTROL_HOME 0x0223
+#define APPCONTROL_BACK 0x0224
+#define APPCONTROL_FORWARD 0x0225
+#define APPCONTROL_STOP 0x0226
+#define APPCONTROL_REFRESH 0x0227
+#define APPCONTROL_BOOKMARKS 0x022A
/* supplement for Bluegiga iWRAP HID(not supported by Windows?) */
-#define AL_LOCK 0x019E
+#define APPLAUNCH_LOCK 0x019E
#define TRANSPORT_RECORD 0x00B2
#define TRANSPORT_FAST_FORWARD 0x00B3
#define TRANSPORT_REWIND 0x00B4
#define TRANSPORT_EJECT 0x00B8
-#define AC_MINIMIZE 0x0206
+#define APPCONTROL_MINIMIZE 0x0206
+/* Display Brightness Controls https://www.usb.org/sites/default/files/hutrr41_0.pdf */
+#define BRIGHTNESS_INCREMENT 0x006F
+#define BRIGHTNESS_DECREMENT 0x0070
-/* Generic Desktop Page(0x01) - system power control */
+/*
+ * Generic Desktop Page(0x01) - system power control
+ */
#define SYSTEM_POWER_DOWN 0x0081
#define SYSTEM_SLEEP 0x0082
#define SYSTEM_WAKE_UP 0x0083
# define KEYBOARD_REPORT_SIZE NKRO_EPSIZE
# define KEYBOARD_REPORT_KEYS (NKRO_EPSIZE - 2)
# define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1)
+#elif defined(PROTOCOL_CHIBIOS) && defined(NKRO_ENABLE)
+# include "protocol/chibios/usb_main.h"
+# define KEYBOARD_REPORT_SIZE NKRO_EPSIZE
+# define KEYBOARD_REPORT_KEYS (NKRO_EPSIZE - 2)
+# define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1)
#else
# define KEYBOARD_REPORT_SIZE 8
/* keycode to consumer usage */
#define KEYCODE2CONSUMER(key) \
- (key == KC_AUDIO_MUTE ? AUDIO_MUTE : \
- (key == KC_AUDIO_VOL_UP ? AUDIO_VOL_UP : \
- (key == KC_AUDIO_VOL_DOWN ? AUDIO_VOL_DOWN : \
- (key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \
- (key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \
- (key == KC_MEDIA_FAST_FORWARD ? TRANSPORT_FAST_FORWARD : \
- (key == KC_MEDIA_REWIND ? TRANSPORT_REWIND : \
- (key == KC_MEDIA_STOP ? TRANSPORT_STOP : \
- (key == KC_MEDIA_EJECT ? TRANSPORT_STOP_EJECT : \
- (key == KC_MEDIA_PLAY_PAUSE ? TRANSPORT_PLAY_PAUSE : \
- (key == KC_MEDIA_SELECT ? AL_CC_CONFIG : \
- (key == KC_MAIL ? AL_EMAIL : \
- (key == KC_CALCULATOR ? AL_CALCULATOR : \
- (key == KC_MY_COMPUTER ? AL_LOCAL_BROWSER : \
- (key == KC_WWW_SEARCH ? AC_SEARCH : \
- (key == KC_WWW_HOME ? AC_HOME : \
- (key == KC_WWW_BACK ? AC_BACK : \
- (key == KC_WWW_FORWARD ? AC_FORWARD : \
- (key == KC_WWW_STOP ? AC_STOP : \
- (key == KC_WWW_REFRESH ? AC_REFRESH : \
- (key == KC_WWW_FAVORITES ? AC_BOOKMARKS : 0)))))))))))))))))))))
+ (key == KC_AUDIO_MUTE ? AUDIO_MUTE : \
+ (key == KC_AUDIO_VOL_UP ? AUDIO_VOL_UP : \
+ (key == KC_AUDIO_VOL_DOWN ? AUDIO_VOL_DOWN : \
+ (key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \
+ (key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \
+ (key == KC_MEDIA_FAST_FORWARD ? TRANSPORT_FAST_FORWARD : \
+ (key == KC_MEDIA_REWIND ? TRANSPORT_REWIND : \
+ (key == KC_MEDIA_STOP ? TRANSPORT_STOP : \
+ (key == KC_MEDIA_EJECT ? TRANSPORT_STOP_EJECT : \
+ (key == KC_MEDIA_PLAY_PAUSE ? TRANSPORT_PLAY_PAUSE : \
+ (key == KC_MEDIA_SELECT ? APPLAUNCH_CC_CONFIG : \
+ (key == KC_MAIL ? APPLAUNCH_EMAIL : \
+ (key == KC_CALCULATOR ? APPLAUNCH_CALCULATOR : \
+ (key == KC_MY_COMPUTER ? APPLAUNCH_LOCAL_BROWSER : \
+ (key == KC_WWW_SEARCH ? APPCONTROL_SEARCH : \
+ (key == KC_WWW_HOME ? APPCONTROL_HOME : \
+ (key == KC_WWW_BACK ? APPCONTROL_BACK : \
+ (key == KC_WWW_FORWARD ? APPCONTROL_FORWARD : \
+ (key == KC_WWW_STOP ? APPCONTROL_STOP : \
+ (key == KC_WWW_REFRESH ? APPCONTROL_REFRESH : \
+ (key == KC_WWW_FAVORITES ? APPCONTROL_BOOKMARKS : \
+ (key == KC_BRIGHTNESS_INC ? BRIGHTNESS_INCREMENT : \
+ (key == KC_BRIGHTNESS_DEC ? BRIGHTNESS_DECREMENT : 0)))))))))))))))))))))))
#ifdef __cplusplus
}