aboutsummaryrefslogtreecommitdiff
path: root/libraries/HID/HID.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/HID/HID.cpp')
-rw-r--r--libraries/HID/HID.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp
index b6b9cea..500eec9 100644
--- a/libraries/HID/HID.cpp
+++ b/libraries/HID/HID.cpp
@@ -38,22 +38,21 @@ int HID_::getInterface(uint8_t* interfaceCount)
return USB_SendControl(0, &hidInterface, sizeof(hidInterface));
}
-int HID_::getDescriptor(int8_t type)
+int HID_::getDescriptor(USBSetup& setup)
{
- if (HID_REPORT_DESCRIPTOR_TYPE == type) {
- int total = 0;
- HIDDescriptorListNode* node;
- for (node = rootNode; node; node = node->next) {
- int res = USB_SendControl(TRANSFER_PGM, node->data, node->length);
- if (res == -1)
- return -1;
- total += res;
- }
- return total;
+ if (interface() != setup.wIndex) {
+ return 0;
}
- // Ignored
- return 0;
+ int total = 0;
+ HIDDescriptorListNode* node;
+ for (node = rootNode; node; node = node->next) {
+ int res = USB_SendControl(TRANSFER_PGM, node->data, node->length);
+ if (res == -1)
+ return -1;
+ total += res;
+ }
+ return total;
}
void HID_::AppendDescriptor(HIDDescriptorListNode *node)
@@ -76,9 +75,9 @@ void HID_::SendReport(uint8_t id, const void* data, int len)
USB_Send(endpoint() | TRANSFER_RELEASE, data, len);
}
-bool HID_::setup(USBSetup& setup, uint8_t interfaceNum)
+bool HID_::setup(USBSetup& setup)
{
- if (interface() != interfaceNum) {
+ if (interface() != setup.wIndex) {
return false;
}