Add NKRO support for LUFA
This commit is contained in:
@ -72,14 +72,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
/* 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 <http://www.gnu.org/licenses/>.
|
||||
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;
|
||||
|
Reference in New Issue
Block a user