aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/HID/HID.cpp22
-rw-r--r--libraries/HID/HID.h3
2 files changed, 12 insertions, 13 deletions
diff --git a/libraries/HID/HID.cpp b/libraries/HID/HID.cpp
index ec28424..0658711 100644
--- a/libraries/HID/HID.cpp
+++ b/libraries/HID/HID.cpp
@@ -36,6 +36,8 @@ HIDDescriptor _hidInterface;
static HIDDescriptorListNode* rootNode = NULL;
static uint16_t sizeof_hidReportDescriptor = 0;
static uint8_t modules_count = 0;
+static uint8_t epType[] = { EP_TYPE_INTERRUPT_IN };
+
//================================================================================
//================================================================================
// Driver
@@ -132,18 +134,14 @@ bool HID_Setup(USBSetup& setup, uint8_t i)
HID_::HID_(void)
{
- static uint8_t endpointType[1];
- endpointType[0] = EP_TYPE_INTERRUPT_IN;
-
- static PUSBListNode node;
- node.setup = &HID_Setup,
- node.getInterface = &HID_GetInterface,
- node.getDescriptor = &HID_GetDescriptor,
- node.numEndpoints = 1,
- node.numInterfaces = 1,
- node.endpointType = endpointType,
-
- HID_ENDPOINT_INT = PluggableUSB.addFunction(&node, &HID_INTERFACE);
+ setup = &HID_Setup;
+ getInterface = &HID_GetInterface;
+ getDescriptor = &HID_GetDescriptor;
+ numEndpoints = 1;
+ numInterfaces = 1;
+ endpointType = epType;
+
+ HID_ENDPOINT_INT = PluggableUSB.addFunction(this, &HID_INTERFACE);
}
int HID_::begin(void)
diff --git a/libraries/HID/HID.h b/libraries/HID/HID.h
index 47ac3b9..b7ad457 100644
--- a/libraries/HID/HID.h
+++ b/libraries/HID/HID.h
@@ -24,6 +24,7 @@
#include <stdint.h>
#include <Arduino.h>
+#include "PluggableUSB.h"
#if defined(USBCON)
@@ -53,7 +54,7 @@ public:
uint16_t length;
};
-class HID_
+class HID_ : public PUSBListNode
{
public:
HID_(void);