X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Freport.h;h=91982840af441a775c88be4171c293ec1bbec1d5;hb=6d76e600958c72491c3a9eda661d23076dde38b0;hp=02deb7797e7ec6b224d94b53df56e1474ce57bae;hpb=09e1eded8ba15aa91c37d703c6a85a896741f19a;p=max%2Ftmk_keyboard.git diff --git a/common/report.h b/common/report.h index 02deb779..91982840 100644 --- a/common/report.h +++ b/common/report.h @@ -72,14 +72,20 @@ along with this program. If not, see . /* key report size(NKRO or boot mode) */ -#if defined(PROTOCOL_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 @@ -88,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;