diff options
author | Cristian Maglie <c.maglie@arduino.cc> | 2015-09-30 19:04:01 +0200 |
---|---|---|
committer | Cristian Maglie <c.maglie@arduino.cc> | 2015-10-02 11:59:23 +0200 |
commit | c0f9296ae5bae083bcc793de1ddd7c7c79ad4236 (patch) | |
tree | 77aa6bea6eb88addb9da580611074a255b220f11 /cores/arduino | |
parent | dbaec17c03fb846da28aaf249493fc2b872ca66a (diff) |
[PUSB] No more static fields in PluggableUSB class
Diffstat (limited to 'cores/arduino')
-rw-r--r-- | cores/arduino/PluggableUSB.cpp | 25 | ||||
-rw-r--r-- | cores/arduino/PluggableUSB.h | 15 |
2 files changed, 25 insertions, 15 deletions
diff --git a/cores/arduino/PluggableUSB.cpp b/cores/arduino/PluggableUSB.cpp index 2c7221d..a8c69d4 100644 --- a/cores/arduino/PluggableUSB.cpp +++ b/cores/arduino/PluggableUSB.cpp @@ -25,21 +25,17 @@ #define MAX_MODULES 6 -static uint8_t lastIf = CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT; -static uint8_t lastEp = CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT; - extern uint8_t _initEndpoints[]; //PUSBCallbacks cbs[MAX_MODULES]; -static uint8_t modules_count = 0; -static PUSBListNode* rootNode = NULL; +PluggableUSB_ PluggableUSB; int PluggableUSB_::getInterface(uint8_t* interfaceNum) { int ret = 0; PUSBListNode* node = rootNode; - for (uint8_t i=0; i<modules_count; i++) { + for (uint8_t i=0; i<modulesCount; i++) { ret = node->getInterface(interfaceNum); node = node->next; } @@ -50,7 +46,7 @@ int PluggableUSB_::getDescriptor(int8_t t) { int ret = 0; PUSBListNode* node = rootNode; - for (uint8_t i=0; i<modules_count && ret == 0; i++) { + for (uint8_t i=0; i<modulesCount && ret == 0; i++) { ret = node->getDescriptor(t); node = node->next; } @@ -61,7 +57,7 @@ bool PluggableUSB_::setup(USBSetup& setup, uint8_t j) { bool ret = false; PUSBListNode* node = rootNode; - for (uint8_t i=0; i<modules_count && ret == false; i++) { + for (uint8_t i=0; i<modulesCount && ret == false; i++) { ret = node->setup(setup, j); node = node->next; } @@ -70,11 +66,11 @@ bool PluggableUSB_::setup(USBSetup& setup, uint8_t j) bool PluggableUSB_::plug(PUSBListNode *node) { - if (modules_count >= MAX_MODULES) { + if (modulesCount >= MAX_MODULES) { return false; } - if (modules_count == 0) { + if (modulesCount == 0) { rootNode = node; } else { PUSBListNode *current = rootNode; @@ -91,11 +87,18 @@ bool PluggableUSB_::plug(PUSBListNode *node) _initEndpoints[lastEp] = node->endpointType[i]; lastEp++; } - modules_count++; + modulesCount++; return true; // restart USB layer??? } +PluggableUSB_::PluggableUSB_() : lastIf(CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT), + lastEp(CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT), + modulesCount(0), rootNode(NULL) +{ + // Empty +} + #endif #endif /* if defined(USBCON) */ diff --git a/cores/arduino/PluggableUSB.h b/cores/arduino/PluggableUSB.h index 0f776c0..93ee15c 100644 --- a/cores/arduino/PluggableUSB.h +++ b/cores/arduino/PluggableUSB.h @@ -54,10 +54,17 @@ public: class PluggableUSB_ { public: - static bool plug(PUSBListNode *node); - static int getInterface(uint8_t* interfaceNum); - static int getDescriptor(int8_t t); - static bool setup(USBSetup& setup, uint8_t i); + PluggableUSB_(); + bool plug(PUSBListNode *node); + int getInterface(uint8_t* interfaceNum); + int getDescriptor(int8_t t); + bool setup(USBSetup& setup, uint8_t i); + +private: + uint8_t lastIf; + uint8_t lastEp; + uint8_t modulesCount; + PUSBListNode* rootNode; }; extern PluggableUSB_ PluggableUSB; |