X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Freport.h;h=91982840af441a775c88be4171c293ec1bbec1d5;hb=6d76e600958c72491c3a9eda661d23076dde38b0;hp=0995189b399087668dd3373ff50d85b39b5279ba;hpb=8c80deb775ac151001dc1592a2e94e8677b49964;p=max%2Ftmk_keyboard.git diff --git a/common/report.h b/common/report.h index 0995189b..91982840 100644 --- a/common/report.h +++ b/common/report.h @@ -43,6 +43,7 @@ along with this program. If not, see . #define TRANSPORT_NEXT_TRACK 0x00B5 #define TRANSPORT_PREV_TRACK 0x00B6 #define TRANSPORT_STOP 0x00B7 +#define TRANSPORT_STOP_EJECT 0x00CC #define TRANSPORT_PLAY_PAUSE 0x00CD /* application launch */ #define AL_CC_CONFIG 0x0183 @@ -71,14 +72,20 @@ along with this program. If not, see . /* key report size(NKRO or boot mode) */ -#if defined(HOST_PJRC) +#if defined(PROTOCOL_PJRC) && defined(NKRO_ENABLE) # include "usb.h" -# if defined(KBD2_REPORT_KEYS) && KBD2_REPORT_KEYS > KBD_REPORT_KEYS -# define REPORT_KEYS KBD2_REPORT_KEYS -# else -# define REPORT_KEYS KBD_REPORT_KEYS -# endif +# define REPORT_SIZE KBD2_SIZE +# define REPORT_KEYS (KBD2_SIZE - 2) +# define REPORT_BITS (KBD2_SIZE - 1) + +#elif defined(PROTOCOL_LUFA) && defined(NKRO_ENABLE) +# include "protocol/lufa/descriptor.h" +# define REPORT_SIZE NKRO_EPSIZE +# define REPORT_KEYS (NKRO_EPSIZE - 2) +# define REPORT_BITS (NKRO_EPSIZE - 1) + #else +# define REPORT_SIZE 8 # define REPORT_KEYS 6 #endif @@ -87,11 +94,27 @@ along with this program. If not, see . extern "C" { #endif +typedef union { + uint8_t raw[REPORT_SIZE]; + struct { + uint8_t mods; + uint8_t reserved; + uint8_t keys[REPORT_KEYS]; + }; +#ifdef NKRO_ENABLE + struct { + uint8_t mods; + uint8_t bits[REPORT_BITS]; + } nkro; +#endif +} __attribute__ ((packed)) report_keyboard_t; +/* typedef struct { uint8_t mods; - uint8_t rserved; + uint8_t reserved; uint8_t keys[REPORT_KEYS]; } __attribute__ ((packed)) report_keyboard_t; +*/ typedef struct { uint8_t buttons; @@ -116,6 +139,7 @@ typedef struct { (key == KC_MEDIA_NEXT_TRACK ? TRANSPORT_NEXT_TRACK : \ (key == KC_MEDIA_PREV_TRACK ? TRANSPORT_PREV_TRACK : \ (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 : \ @@ -127,7 +151,7 @@ typedef struct { (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_WWW_FAVORITES ? AC_BOOKMARKS : 0))))))))))))))))))) #ifdef __cplusplus }