Reduce struct name pollution - group typedef struct names by class driver name where...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / Audio.h
index 07667a5..a55fd0d 100644 (file)
                #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