diff options
-rw-r--r-- | tmk_core/common/report.h | 67 |
1 files changed, 64 insertions, 3 deletions
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h index 2a9dad881..ecd5da89a 100644 --- a/tmk_core/common/report.h +++ b/tmk_core/common/report.h | |||
@@ -167,11 +167,72 @@ typedef struct { | |||
167 | } __attribute__((packed)) report_mouse_t; | 167 | } __attribute__((packed)) report_mouse_t; |
168 | 168 | ||
169 | /* keycode to system usage */ | 169 | /* keycode to system usage */ |
170 | #define KEYCODE2SYSTEM(key) (key == KC_SYSTEM_POWER ? SYSTEM_POWER_DOWN : (key == KC_SYSTEM_SLEEP ? SYSTEM_SLEEP : (key == KC_SYSTEM_WAKE ? SYSTEM_WAKE_UP : 0))) | 170 | static inline uint16_t KEYCODE2SYSTEM(uint8_t key) { |
171 | switch (key) { | ||
172 | case KC_SYSTEM_POWER: | ||
173 | return SYSTEM_POWER_DOWN; | ||
174 | case KC_SYSTEM_SLEEP: | ||
175 | return SYSTEM_SLEEP; | ||
176 | case KC_SYSTEM_WAKE: | ||
177 | return SYSTEM_WAKE_UP; | ||
178 | default: | ||
179 | return 0; | ||
180 | } | ||
181 | } | ||
171 | 182 | ||
172 | /* keycode to consumer usage */ | 183 | /* keycode to consumer usage */ |
173 | #define KEYCODE2CONSUMER(key) \ | 184 | static inline uint16_t KEYCODE2CONSUMER(uint8_t key) { |
174 | (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))))))))))))))))))))))) | 185 | switch (key) { |
186 | case KC_AUDIO_MUTE: | ||
187 | return AUDIO_MUTE; | ||
188 | case KC_AUDIO_VOL_UP: | ||
189 | return AUDIO_VOL_UP; | ||
190 | case KC_AUDIO_VOL_DOWN: | ||
191 | return AUDIO_VOL_DOWN; | ||
192 | case KC_MEDIA_NEXT_TRACK: | ||
193 | return TRANSPORT_NEXT_TRACK; | ||
194 | case KC_MEDIA_PREV_TRACK: | ||
195 | return TRANSPORT_PREV_TRACK; | ||
196 | case KC_MEDIA_FAST_FORWARD: | ||
197 | return TRANSPORT_FAST_FORWARD; | ||
198 | case KC_MEDIA_REWIND: | ||
199 | return TRANSPORT_REWIND; | ||
200 | case KC_MEDIA_STOP: | ||
201 | return TRANSPORT_STOP; | ||
202 | case KC_MEDIA_EJECT: | ||
203 | return TRANSPORT_STOP_EJECT; | ||
204 | case KC_MEDIA_PLAY_PAUSE: | ||
205 | return TRANSPORT_PLAY_PAUSE; | ||
206 | case KC_MEDIA_SELECT: | ||
207 | return AL_CC_CONFIG; | ||
208 | case KC_MAIL: | ||
209 | return AL_EMAIL; | ||
210 | case KC_CALCULATOR: | ||
211 | return AL_CALCULATOR; | ||
212 | case KC_MY_COMPUTER: | ||
213 | return AL_LOCAL_BROWSER; | ||
214 | case KC_WWW_SEARCH: | ||
215 | return AC_SEARCH; | ||
216 | case KC_WWW_HOME: | ||
217 | return AC_HOME; | ||
218 | case KC_WWW_BACK: | ||
219 | return AC_BACK; | ||
220 | case KC_WWW_FORWARD: | ||
221 | return AC_FORWARD; | ||
222 | case KC_WWW_STOP: | ||
223 | return AC_STOP; | ||
224 | case KC_WWW_REFRESH: | ||
225 | return AC_REFRESH; | ||
226 | case KC_BRIGHTNESS_UP: | ||
227 | return BRIGHTNESS_UP; | ||
228 | case KC_BRIGHTNESS_DOWN: | ||
229 | return BRIGHTNESS_DOWN; | ||
230 | case KC_WWW_FAVORITES: | ||
231 | return AC_BOOKMARKS; | ||
232 | default: | ||
233 | return 0; | ||
234 | } | ||
235 | } | ||
175 | 236 | ||
176 | uint8_t has_anykey(report_keyboard_t* keyboard_report); | 237 | uint8_t has_anykey(report_keyboard_t* keyboard_report); |
177 | uint8_t get_first_key(report_keyboard_t* keyboard_report); | 238 | uint8_t get_first_key(report_keyboard_t* keyboard_report); |