diff --git a/hardware/arduino/avr/libraries/HID/HID.cpp b/hardware/arduino/avr/libraries/HID/HID.cpp index c5954ed25f6..8533f08ed40 100644 --- a/hardware/arduino/avr/libraries/HID/HID.cpp +++ b/hardware/arduino/avr/libraries/HID/HID.cpp @@ -61,7 +61,7 @@ int HID_GetDescriptor(int8_t t) HIDDescriptorListNode* current = rootNode; int total = 0; while(current != NULL) { - total += USB_SendControl(TRANSFER_PGM,current->cb->descriptor,current->cb->length); + total += USB_SendControl(TRANSFER_PGM,current->data,current->length); current = current->next; } return total; @@ -82,7 +82,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node) current->next = node; } modules_count++; - sizeof_hidReportDescriptor += (uint16_t)node->cb->length; + sizeof_hidReportDescriptor += (uint16_t)node->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 b9f29b4be4f..1a87bb7cb2b 100644 --- a/hardware/arduino/avr/libraries/HID/HID.h +++ b/hardware/arduino/avr/libraries/HID/HID.h @@ -44,16 +44,13 @@ #define HID_REPORT_DESCRIPTOR_TYPE 0x22 #define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 -typedef struct __attribute__((packed)) { - uint16_t length; - const void* descriptor; -} HID_Descriptor; - class HIDDescriptorListNode { public: HIDDescriptorListNode *next = NULL; - const HID_Descriptor * cb; - HIDDescriptorListNode(const HID_Descriptor *ncb) {cb = ncb;} + HIDDescriptorListNode(const void *d, uint16_t l) : data(d), length(l) { } + + const void* data; + uint16_t length; }; class HID_ diff --git a/hardware/arduino/sam/libraries/HID/HID.cpp b/hardware/arduino/sam/libraries/HID/HID.cpp index 935039096d5..b2a79423e35 100644 --- a/hardware/arduino/sam/libraries/HID/HID.cpp +++ b/hardware/arduino/sam/libraries/HID/HID.cpp @@ -68,7 +68,7 @@ int HID_GetDescriptor(int8_t t) HIDDescriptorListNode* current = rootNode; int total = 0; while(current != NULL) { - total += USBD_SendControl(0,current->cb->descriptor,current->cb->length); + total += USBD_SendControl(0,current->data,current->length); current = current->next; } return total; @@ -89,7 +89,7 @@ void HID_::AppendDescriptor(HIDDescriptorListNode *node) current->next = node; } modules_count++; - sizeof_hidReportDescriptor += node->cb->length; + sizeof_hidReportDescriptor += node->length; } void HID_::SendReport(uint8_t id, const void* data, int len) @@ -165,4 +165,4 @@ HID_::HID_(void) int HID_::begin(void) { return 0; -} \ No newline at end of file +} diff --git a/hardware/arduino/sam/libraries/HID/HID.h b/hardware/arduino/sam/libraries/HID/HID.h index 7288552d890..5c8313b5d11 100644 --- a/hardware/arduino/sam/libraries/HID/HID.h +++ b/hardware/arduino/sam/libraries/HID/HID.h @@ -42,16 +42,12 @@ #define HID_REPORT_DESCRIPTOR_TYPE 0x22 #define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 -typedef struct __attribute__((packed)) { - uint8_t length; - const void* descriptor; -} HID_Descriptor; - class HIDDescriptorListNode { public: HIDDescriptorListNode *next = NULL; - const HID_Descriptor * cb; - HIDDescriptorListNode(const HID_Descriptor *ncb) {cb = ncb;} + HIDDescriptorListNode(const void *d, uint16_t l) : data(d), length(l) { } + uint8_t length; + const void* data; }; class HID_ @@ -90,4 +86,4 @@ typedef struct #define WEAK __attribute__ ((weak)) -#endif \ No newline at end of file +#endif diff --git a/libraries/Keyboard/src/Keyboard.cpp b/libraries/Keyboard/src/Keyboard.cpp index 6ea365c5e39..468891de7f6 100644 --- a/libraries/Keyboard/src/Keyboard.cpp +++ b/libraries/Keyboard/src/Keyboard.cpp @@ -62,11 +62,7 @@ static const uint8_t _hidReportDescriptor[] PROGMEM = { Keyboard_::Keyboard_(void) { - static HID_Descriptor cb = { - .length = sizeof(_hidReportDescriptor), - .descriptor = _hidReportDescriptor, - }; - static HIDDescriptorListNode node(&cb); + static HIDDescriptorListNode node(_hidReportDescriptor, sizeof(_hidReportDescriptor)); HID.AppendDescriptor(&node); } diff --git a/libraries/Mouse/src/Mouse.cpp b/libraries/Mouse/src/Mouse.cpp index 234ca60341d..0cb5b2908fb 100644 --- a/libraries/Mouse/src/Mouse.cpp +++ b/libraries/Mouse/src/Mouse.cpp @@ -62,11 +62,7 @@ static const uint8_t _hidReportDescriptor[] PROGMEM = { Mouse_::Mouse_(void) : _buttons(0) { - const static HID_Descriptor cb = { - .length = sizeof(_hidReportDescriptor), - .descriptor = _hidReportDescriptor, - }; - static HIDDescriptorListNode node(&cb); + static HIDDescriptorListNode node(_hidReportDescriptor, sizeof(_hidReportDescriptor)); HID.AppendDescriptor(&node); }