35#define ADK_GETPROTO 51
37#define ADK_ACCSTART 53
39#define bmREQ_ADK_GET USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_VENDOR|USB_SETUP_RECIPIENT_DEVICE
40#define bmREQ_ADK_SEND USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_VENDOR|USB_SETUP_RECIPIENT_DEVICE
42#define ACCESSORY_STRING_MANUFACTURER 0
43#define ACCESSORY_STRING_MODEL 1
44#define ACCESSORY_STRING_DESCRIPTION 2
45#define ACCESSORY_STRING_VERSION 3
46#define ACCESSORY_STRING_URI 4
47#define ACCESSORY_STRING_SERIAL 5
49#define ADK_MAX_ENDPOINTS 3
56 const char* manufacturer;
58 const char* description;
88 const char* description,
127 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_ADK_GET,
ADK_GETPROTO, 0, 0, 0, 2, 2,
adkproto,
NULL));
132 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_ADK_SEND,
ADK_SENDSTR, 0, 0, index,
strlen(
str) + 1,
strlen(
str) + 1, (
uint8_t*)
str,
NULL));
136inline uint8_t ADK::switchAcc(
void) {
137 return (
pUsb->
ctrlReq(
bAddress, 0,
bmREQ_ADK_SEND,
ADK_ACCSTART, 0, 0, 0, 0, 0,
NULL,
NULL));
#define ADK_MAX_ENDPOINTS
uint8_t ConfigureDevice(uint8_t parent, uint8_t port, bool lowspeed)
virtual uint8_t GetAddress()
uint8_t RcvData(uint16_t *nbytesptr, uint8_t *dataptr)
EpInfo epInfo[ADK_MAX_ENDPOINTS]
uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
static const uint8_t epDataInIndex
virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)
void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)
uint8_t SndData(uint16_t nbytes, uint8_t *dataptr)
void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)
static const uint8_t epDataOutIndex
uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)