| // 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; |