summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tmk_core/common/report.h67
1 files changed, 64 insertions, 3 deletions
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h
index 2a9dad8811..ecd5da89a0 100644
--- a/tmk_core/common/report.h
+++ b/tmk_core/common/report.h
@@ -167,11 +167,72 @@ typedef struct {
} __attribute__((packed)) report_mouse_t;
/* keycode to system usage */
-#define KEYCODE2SYSTEM(key) (key == KC_SYSTEM_POWER ? SYSTEM_POWER_DOWN : (key == KC_SYSTEM_SLEEP ? SYSTEM_SLEEP : (key == KC_SYSTEM_WAKE ? SYSTEM_WAKE_UP : 0)))
+static inline uint16_t KEYCODE2SYSTEM(uint8_t key) {
+ switch (key) {
+ case KC_SYSTEM_POWER:
+ return SYSTEM_POWER_DOWN;
+ case KC_SYSTEM_SLEEP:
+ return SYSTEM_SLEEP;
+ case KC_SYSTEM_WAKE:
+ return SYSTEM_WAKE_UP;
+ default:
+ return 0;
+ }
+}
/* 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_BRIGHTNESS_UP ? BRIGHTNESS_UP : (key == KC_BRIGHTNESS_DOWN ? BRIGHTNESS_DOWN : (key == KC_WWW_FAVORITES ? AC_BOOKMARKS : 0)))))))))))))))))))))))
+static inline uint16_t KEYCODE2CONSUMER(uint8_t key) {
+ switch (key) {
+ case KC_AUDIO_MUTE:
+ return AUDIO_MUTE;
+ case KC_AUDIO_VOL_UP:
+ return AUDIO_VOL_UP;
+ case KC_AUDIO_VOL_DOWN:
+ return AUDIO_VOL_DOWN;
+ case KC_MEDIA_NEXT_TRACK:
+ return TRANSPORT_NEXT_TRACK;
+ case KC_MEDIA_PREV_TRACK:
+ return TRANSPORT_PREV_TRACK;
+ case KC_MEDIA_FAST_FORWARD:
+ return TRANSPORT_FAST_FORWARD;
+ case KC_MEDIA_REWIND:
+ return TRANSPORT_REWIND;
+ case KC_MEDIA_STOP:
+ return TRANSPORT_STOP;
+ case KC_MEDIA_EJECT:
+ return TRANSPORT_STOP_EJECT;
+ case KC_MEDIA_PLAY_PAUSE:
+ return TRANSPORT_PLAY_PAUSE;
+ case KC_MEDIA_SELECT:
+ return AL_CC_CONFIG;
+ case KC_MAIL:
+ return AL_EMAIL;
+ case KC_CALCULATOR:
+ return AL_CALCULATOR;
+ case KC_MY_COMPUTER:
+ return AL_LOCAL_BROWSER;
+ case KC_WWW_SEARCH:
+ return AC_SEARCH;
+ case KC_WWW_HOME:
+ return AC_HOME;
+ case KC_WWW_BACK:
+ return AC_BACK;
+ case KC_WWW_FORWARD:
+ return AC_FORWARD;
+ case KC_WWW_STOP:
+ return AC_STOP;
+ case KC_WWW_REFRESH:
+ return AC_REFRESH;
+ case KC_BRIGHTNESS_UP:
+ return BRIGHTNESS_UP;
+ case KC_BRIGHTNESS_DOWN:
+ return BRIGHTNESS_DOWN;
+ case KC_WWW_FAVORITES:
+ return AC_BOOKMARKS;
+ default:
+ return 0;
+ }
+}
uint8_t has_anykey(report_keyboard_t* keyboard_report);
uint8_t get_first_key(report_keyboard_t* keyboard_report);