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; + setup = &HID_Setup; + getInterface = &HID_GetInterface; + getDescriptor = &HID_GetDescriptor; + numEndpoints = 1; + numInterfaces = 1; + endpointType = epType; - 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); + 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 #include +#include "PluggableUSB.h" #if defined(USBCON) @@ -53,7 +54,7 @@ public: uint16_t length; }; -class HID_ +class HID_ : public PUSBListNode { public: HID_(void);