Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of F401RE-USBHost by
Diff: USBHost/USBDeviceConnected.cpp
- Revision:
- 10:40c7f6788902
- Parent:
- 9:7f9f64cf5ded
--- a/USBHost/USBDeviceConnected.cpp Mon Feb 03 13:00:16 2014 +0000
+++ b/USBHost/USBDeviceConnected.cpp Wed Feb 05 13:34:37 2014 +0000
@@ -22,51 +22,39 @@
}
void USBDeviceConnected::init() {
- hub_nb = 0;
port = 0;
vid = 0;
pid = 0;
nb_interf = 0;
enumerated = false;
- //activeAddr = false;
- //sizeControlEndpoint = 8;
device_class = 0;
device_subclass = 0;
proto = 0;
lowSpeed = false;
- intf.clear();
- //hub_parent = NULL;
- //hub = NULL;
+ hub_parent = NULL;
}
bool USBDeviceConnected::addInterface(uint8_t intf_nb, uint8_t intf_class, uint8_t intf_subclass, uint8_t intf_protocol) {
USB_DBG("intf_nb=%d", intf_nb);
- INTERFACE* inter = intf.get(intf_nb);
- if (inter) {
- return false;
+ if (intf.count(intf_nb) > 0) {
+ return false;
}
- inter = new INTERFACE;
- inter->in_use = true;
- inter->intf_class = intf_class;
- inter->intf_subclass = intf_subclass;
- inter->intf_protocol = intf_protocol;
- intf.put(intf_nb, inter);
+ intf[intf_nb] = new INTERFACE(intf_class, intf_subclass, intf_protocol);
return true;
}
bool USBDeviceConnected::addEndpoint(uint8_t intf_nb, USBEndpoint * ept) {
- INTERFACE* inter = intf.get(intf_nb);
- if (inter == NULL) {
- return false;
- }
- inter->ep.push(ept);
- return true;
+ if (intf.count(intf_nb) > 0) {
+ intf[intf_nb]->ep.push_back(ept);
+ return true;
+ }
+ return false;
}
-void USBDeviceConnected::init(uint8_t hub_, uint8_t port_, bool lowSpeed_) {
+void USBDeviceConnected::init(USBDeviceConnected* parent, uint8_t port_, bool lowSpeed_) {
USB_DBG("init dev: %p", this);
init();
- hub_nb = hub_;
+ hub_parent = parent;
port = port_;
lowSpeed = lowSpeed_;
}
@@ -81,14 +69,14 @@
USBEndpoint * USBDeviceConnected::getEndpoint(uint8_t intf_nb, ENDPOINT_TYPE type, ENDPOINT_DIRECTION dir, uint8_t index) {
USB_DBG("intf_nb=%d", intf_nb);
- INTERFACE* inter = intf.get(intf_nb);
- USB_TEST_ASSERT(inter);
+ USB_TEST_ASSERT(intf.count(intf_nb) > 0);
+ INTERFACE* inter = intf[intf_nb];
for (int i = 0; i < inter->ep.size(); i++) {
- if ((inter->ep.at(i)->getType() == type) && (inter->ep.at(i)->getDir() == dir)) {
+ if ((inter->ep[i]->getType() == type) && (inter->ep[i]->getDir() == dir)) {
if(index) {
index--;
} else {
- return inter->ep.at(i);
+ return inter->ep[i];
}
}
}
@@ -96,7 +84,6 @@
}
USBEndpoint * USBDeviceConnected::getEndpoint(uint8_t intf_nb, uint8_t index) {
- INTERFACE* inter = intf.get(intf_nb);
- USB_TEST_ASSERT(inter);
- return inter->ep.at(index);
+ USB_TEST_ASSERT(intf.count(intf_nb) > 0);
+ return intf[intf_nb]->ep[index];
}
