From 7811c2ceed8827cd79811f90bc82781326de957f Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 29 Sep 2015 17:10:48 +0200 Subject: [HID] Now HID extends directly PluggableUSBListNode This avoid duplicate instatiation of callback and save a considerable amount of flash. --- libraries/HID/HID.cpp | 22 ++++++++++------------ libraries/HID/HID.h | 3 ++- 2 files changed, 12 insertions(+), 13 deletions(-) (limited to 'libraries/HID') 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 #include +#include "PluggableUSB.h" #if defined(USBCON) @@ -53,7 +54,7 @@ public: uint16_t length; }; -class HID_ +class HID_ : public PUSBListNode { public: HID_(void); -- cgit v1.2.3-18-g5258