From a1cf7042b238dad8bb54ddbab79298b26f457a48 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Fri, 7 Aug 2015 19:42:04 +0200 Subject: [PATCH] Fixed HID Reports >255 bytes --- hardware/arduino/avr/libraries/HID/HID.cpp | 4 ++-- hardware/arduino/avr/libraries/HID/HID.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hardware/arduino/avr/libraries/HID/HID.cpp b/hardware/arduino/avr/libraries/HID/HID.cpp index 0d2133ec7..04b5731ff 100644 --- a/hardware/arduino/avr/libraries/HID/HID.cpp +++ b/hardware/arduino/avr/libraries/HID/HID.cpp @@ -43,7 +43,7 @@ static u8 HID_INTERFACE; HIDDescriptor _hidInterface; static HIDDescriptorListNode* rootNode = NULL; -static uint8_t sizeof_hidReportDescriptor = 0; +static uint16_t sizeof_hidReportDescriptor = 0; static uint8_t modules_count = 0; //================================================================================ //================================================================================ @@ -91,7 +91,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node) current->next = node; } modules_count++; - sizeof_hidReportDescriptor += node->cb->length; + sizeof_hidReportDescriptor += (uint16_t)node->cb->length; } void HID_::SendReport(u8 id, const void* data, int len) diff --git a/hardware/arduino/avr/libraries/HID/HID.h b/hardware/arduino/avr/libraries/HID/HID.h index 89832a9af..b9f29b4be 100644 --- a/hardware/arduino/avr/libraries/HID/HID.h +++ b/hardware/arduino/avr/libraries/HID/HID.h @@ -45,7 +45,7 @@ #define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 typedef struct __attribute__((packed)) { - u8 length; + uint16_t length; const void* descriptor; } HID_Descriptor; @@ -88,10 +88,10 @@ typedef struct #define HID_TX HID_ENDPOINT_INT #define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } + { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength & 0xFF, _descriptorLength >> 8 } #define WEAK __attribute__ ((weak)) #endif -#endif \ No newline at end of file +#endif