|
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
#ifdef __cplusplus |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// setup struct definition could be moved from usb_dev.c to usb_dev.h so we can reuse |
|
|
|
|
|
// it instead of redefining it here |
|
|
|
|
|
struct setup_struct { |
|
|
|
|
|
union { |
|
|
|
|
|
struct { |
|
|
|
|
|
uint8_t bmRequestType; |
|
|
|
|
|
uint8_t bRequest; |
|
|
|
|
|
union { |
|
|
|
|
|
struct { |
|
|
|
|
|
uint8_t bChannel; // 0=main, 1=left, 2=right |
|
|
|
|
|
uint8_t bCS; // Control Selector |
|
|
|
|
|
}; |
|
|
|
|
|
uint16_t wValue; |
|
|
|
|
|
}; |
|
|
|
|
|
union { |
|
|
|
|
|
struct { |
|
|
|
|
|
uint8_t bIfEp; // type of entity |
|
|
|
|
|
uint8_t bEntityId; // UnitID, TerminalID, etc. |
|
|
|
|
|
}; |
|
|
|
|
|
uint16_t wIndex; |
|
|
|
|
|
}; |
|
|
|
|
|
uint16_t wLength; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// audio features supported |
|
|
// audio features supported |
|
|
struct usb_audio_features_struct { |
|
|
struct usb_audio_features_struct { |
|
|
int change; // set to 1 when any value is changed |
|
|
int change; // set to 1 when any value is changed |