diff options
author | NicoHood <NicoHood@users.noreply.github.com> | 2015-08-07 19:42:04 +0200 |
---|---|---|
committer | NicoHood <NicoHood@users.noreply.github.com> | 2015-08-12 17:48:17 +0200 |
commit | 488ace3d138ef1eb183ab53b9b24fa9ea3eeb301 (patch) | |
tree | 2818f0dbc9980a54ece7ddf65d7c10525b5f3dce | |
parent | 77cc20f11904cb46b509f69ad9e856b5ad9eb253 (diff) |
Fixed HID Reports >255 bytes
-rw-r--r-- | libraries/HID/HID.cpp | 4 | ||||
-rw-r--r-- | libraries/HID/HID.h | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp index 0d2133e..04b5731 100644 --- a/libraries/HID/HID.cpp +++ b/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/libraries/HID/HID.h b/libraries/HID/HID.h index 89832a9..b9f29b4 100644 --- a/libraries/HID/HID.h +++ b/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 |