From 488ace3d138ef1eb183ab53b9b24fa9ea3eeb301 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Fri, 7 Aug 2015 19:42:04 +0200 Subject: Fixed HID Reports >255 bytes --- libraries/HID/HID.cpp | 4 ++-- libraries/HID/HID.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'libraries/HID') 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 -- cgit v1.2.3-18-g5258 From d1fe40060e3c9b1f060e86221aeabf7f70a66316 Mon Sep 17 00:00:00 2001 From: NicoHood Date: Fri, 7 Aug 2015 19:45:18 +0200 Subject: Added 16 byte endpoint support --- libraries/HID/HID.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libraries/HID') diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp index 04b5731..c629eb9 100644 --- a/libraries/HID/HID.cpp +++ b/libraries/HID/HID.cpp @@ -59,7 +59,7 @@ int HID_GetInterface(u8* interfaceNum) { D_INTERFACE(HID_INTERFACE,1,3,0,0), D_HIDREPORT(sizeof_hidReportDescriptor), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) + D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,USB_EP_SIZE,0x01) }; return USB_SendControl(0,&_hidInterface,sizeof(_hidInterface)); } -- cgit v1.2.3-18-g5258