|
|
|
|
|
|
|
|
// All USB device drivers inherit from this base class. |
|
|
// All USB device drivers inherit from this base class. |
|
|
class USBDriver : public USBHost { |
|
|
class USBDriver : public USBHost { |
|
|
public: |
|
|
public: |
|
|
//operator bool() { return (*(Device_t * volatile *)&device != nullptr); } |
|
|
|
|
|
operator bool() { |
|
|
operator bool() { |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
return dev != nullptr; |
|
|
return dev != nullptr; |
|
|
} |
|
|
} |
|
|
uint16_t idVendor() { |
|
|
uint16_t idVendor() { |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
return (device != nullptr) ? device->idVendor : 0; |
|
|
|
|
|
|
|
|
return (dev != nullptr) ? dev->idVendor : 0; |
|
|
} |
|
|
} |
|
|
uint16_t idProduct() { |
|
|
uint16_t idProduct() { |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
return (device != nullptr) ? device->idProduct : 0; |
|
|
|
|
|
|
|
|
return (dev != nullptr) ? dev->idProduct : 0; |
|
|
} |
|
|
} |
|
|
const uint8_t *manufacturer() { |
|
|
const uint8_t *manufacturer() { |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |
|
|
Device_t *dev = *(Device_t * volatile *)&device; |