mbed base bard check program for BlueTooth USB dongle module (3 switches, 6 leds, I2C LCD, A/D)
Fork of BTstack by
Diff: usb/UsbHostMgr2.cpp
- Revision:
- 1:b657594559be
- Parent:
- 0:1ed23ab1345f
- Child:
- 2:871b41f4789e
diff -r 1ed23ab1345f -r b657594559be usb/UsbHostMgr2.cpp --- a/usb/UsbHostMgr2.cpp Tue Jun 26 14:27:45 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -#include "UsbHostMgr.h" -//#define __DEBUG -#include "mydbg.h" - -UsbDevice* UsbHostMgr::getDeviceByClass(uint8_t IfClass, int count) -{ - DBG("IfClass=%02X count=%d\n", IfClass, count); - for(int i = 0; i < USB_HOSTMGR_MAX_DEVS; i++) { - UsbDevice* dev = m_lpDevices[i]; - if (dev) { - if(dev->m_connected && dev->m_enumerated) { - if (dev->m_InterfaceClass == IfClass) { // found - if (count-- <= 0) { - return dev; - } - } - } - } - } - return NULL; -} - -void UsbHostMgr::onUsbDeviceConnected(int hub, int port) -{ - DBG("%p hub=%d port=%d\n", this, hub, port); - for(int i = 0; i < USB_HOSTMGR_MAX_DEVS; i++) { - UsbDevice* dev = m_lpDevices[i]; - if (dev) { - if (dev->m_hub == hub && dev->m_port == port) { // skip - return; - } - } - } - - int item = devicesCount(); - DBG_ASSERT(item < USB_HOSTMGR_MAX_DEVS); - if( item == USB_HOSTMGR_MAX_DEVS ) - return; //List full... - //Find a free address (not optimized, but not really important) - int addr = 1; - for(int i = 0; i < item; i++) - { - DBG_ASSERT(m_lpDevices[i]); - addr = MAX( addr, m_lpDevices[i]->m_addr + 1 ); - } - DBG("item=%d addr=%d\n", item, addr); - UsbDevice* dev = new UsbDevice( this, hub, port, addr ); - DBG_ASSERT(dev); - dev->m_connected = true; - m_lpDevices[item] = dev; -}