#endif\r
\r
/* Macros: */\r
+ #if !defined(AUDIO_TOTAL_SAMPLE_RATES) || defined(__DOXYGEN__)\r
+ /** Total number of discrete audio sample rates supported by the device. This value can be overridden by defining this\r
+ * token in the project makefile to the desired value, and passing it to the compiler via the -D switch.\r
+ */\r
+ #define AUDIO_TOTAL_SAMPLE_RATES 1\r
+ #endif\r
+ \r
/** Descriptor header constant to indicate a Audio class interface descriptor. */\r
#define DTYPE_AudioInterface 0x24\r
\r
\r
uint8_t InCollection; /**< Total number of audio class interfaces within this device */\r
uint8_t InterfaceNumbers[1]; /**< Interface numbers of each audio interface */\r
- } USB_AudioInterface_AC_t;\r
+ } USB_Audio_Interface_AC_t;\r
\r
/** Type define for an Audio class specific Feature Unit descriptor. This indicates to the host what features\r
* are present in the device's audio stream for basic control, such as per-channel volume. See the USB Audio\r
uint8_t ChannelControls[3]; /**< Feature masks for the control channel, and each separate audio channel */\r
\r
uint8_t FeatureUnitStrIndex; /**< Index of a string descriptor describing this descriptor within the device */\r
- } USB_AudioFeatureUnit_t;\r
+ } USB_Audio_FeatureUnit_t;\r
\r
/** Type define for an Audio class specific input terminal descriptor. This indicates to the host that the device\r
* contains an input audio source, either from a physical terminal on the device, or a logical terminal (for example,\r
\r
uint8_t ChannelStrIndex; /**< Index of a string descriptor describing this channel within the device */\r
uint8_t TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device */\r
- } USB_AudioInputTerminal_t;\r
+ } USB_Audio_InputTerminal_t;\r
\r
/** Type define for an Audio class specific output terminal descriptor. This indicates to the host that the device\r
* contains an output audio sink, either to a physical terminal on the device, or a logical terminal (for example,\r
uint8_t SourceID; /**< ID value of the unit this terminal's audio is sourced from */\r
\r
uint8_t TerminalStrIndex; /**< Index of a string descriptor describing this descriptor within the device */\r
- } USB_AudioOutputTerminal_t;\r
+ } USB_Audio_OutputTerminal_t;\r
\r
/** Type define for an Audio class specific streaming interface descriptor. This indicates to the host\r
* how audio streams within the device are formatted. See the USB Audio specification for more details.\r
\r
uint8_t FrameDelay; /**< Delay in frames resulting from the complete sample processing from input to output */\r
uint16_t AudioFormat; /**< Format of the audio stream, see Audio Device Formats specification */\r
- } USB_AudioInterface_AS_t;\r
+ } USB_Audio_Interface_AS_t;\r
\r
/** Type define for a 24bit audio sample frequency structure. GCC does not contain a built in 24bit datatype,\r
* this this structure is used to build up the value instead. Fill this structure with the SAMPLE_FREQ() macro.\r
{\r
uint16_t LowWord; /**< Low 16 bits of the 24-bit value */\r
uint8_t HighByte; /**< Upper 8 bits of the 24-bit value */\r
- } AudioSampleFreq_t;\r
+ } USB_Audio_SampleFreq_t;\r
\r
/** Type define for an Audio class specific audio format descriptor. This is used to give the host full details\r
* about the number of channels, the sample resolution, acceptable sample frequencies and encoding method used\r
uint8_t BitResolution; /**< Bits of resolution of each channel's samples in the stream */\r
\r
uint8_t SampleFrequencyType; /**< Total number of sample frequencies supported by the device */ \r
- AudioSampleFreq_t SampleFrequencies[1]; /**< Sample frequencies supported by the device */\r
- } USB_AudioFormat_t;\r
+ USB_Audio_SampleFreq_t SampleFrequencies[AUDIO_TOTAL_SAMPLE_RATES]; /**< Sample frequencies supported by the device */\r
+ } USB_Audio_Format_t;\r
\r
/** Type define for an Audio class specific endpoint descriptor. This contains a regular endpoint \r
* descriptor with a few Audio-class specific extensions. See the USB Audio specification for more details.\r
\r
uint8_t Refresh; /**< Always set to zero */\r
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */\r
- } USB_AudioStreamEndpoint_Std_t;\r
+ } USB_Audio_StreamEndpoint_Std_t;\r
\r
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information\r
* on the usage of endpoints used to stream audio in and out of the USB Audio device, and follows an Audio\r
\r
uint8_t LockDelayUnits; /**< Units used for the LockDelay field, see Audio class specification */\r
uint16_t LockDelay; /**< Time required to internally lock endpoint's internal clock recovery circuitry */\r
- } USB_AudioStreamEndpoint_Spc_t;\r
+ } USB_Audio_StreamEndpoint_Spc_t;\r
\r
/* Disable C linkage for C++ Compilers: */\r
#if defined(__cplusplus)\r