-               /** Descriptor header constant to indicate a Audio class interface descriptor. */
-               #define DTYPE_AudioInterface         0x24
-
-               /** Descriptor header constant to indicate a Audio class endpoint descriptor. */
-               #define DTYPE_AudioEndpoint          0x25
-
-               /** Audio class descriptor subtype value for a Audio class specific header descriptor. */
-               #define DSUBTYPE_Header              0x01
-
-               /** Audio class descriptor subtype value for an Output Terminal Audio class specific descriptor. */
-               #define DSUBTYPE_InputTerminal       0x02
-
-               /** Audio class descriptor subtype value for an Input Terminal Audio class specific descriptor. */
-               #define DSUBTYPE_OutputTerminal      0x03
-
-               /** Audio class descriptor subtype value for a Feature Unit Audio class specific descriptor. */
-               #define DSUBTYPE_FeatureUnit         0x06
-
-               /** Audio class descriptor subtype value for a general Audio class specific descriptor. */
-               #define DSUBTYPE_General             0x01
-
-               /** Audio class descriptor subtype value for an Audio class specific descriptor indicating the format of an audio stream. */
-               #define DSUBTYPE_Format              0x02
-               
-               //@{
-               /** Supported channel mask for an Audio class terminal descriptor. See the Audio class specification for more details. */
-
-               #define CHANNEL_LEFT_FRONT           (1 << 0)
-               #define CHANNEL_RIGHT_FRONT          (1 << 1)
-               #define CHANNEL_CENTER_FRONT         (1 << 2)
-               #define CHANNEL_LOW_FREQ_ENHANCE     (1 << 3)
-               #define CHANNEL_LEFT_SURROUND        (1 << 4)
-               #define CHANNEL_RIGHT_SURROUND       (1 << 5)
-               #define CHANNEL_LEFT_OF_CENTER       (1 << 6)
-               #define CHANNEL_RIGHT_OF_CENTER      (1 << 7)
-               #define CHANNEL_SURROUND             (1 << 8)
-               #define CHANNEL_SIDE_LEFT            (1 << 9)
-               #define CHANNEL_SIDE_RIGHT           (1 << 10)
-               #define CHANNEL_TOP                  (1 << 11)
-               //@}
-
-               //@{
-               /** Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details. */
-
-               #define FEATURE_MUTE                 (1 << 0)
-               #define FEATURE_VOLUME               (1 << 1)
-               #define FEATURE_BASS                 (1 << 2)
-               #define FEATURE_MID                  (1 << 3)
-               #define FEATURE_TREBLE               (1 << 4)
-               #define FEATURE_GRAPHIC_EQUALIZER    (1 << 5)
-               #define FEATURE_AUTOMATIC_GAIN       (1 << 6)
-               #define FEATURE_DELAY                (1 << 7)
-               #define FEATURE_BASS_BOOST           (1 << 8)
-               #define FEATURE_BASS_LOUDNESS        (1 << 9)
-               //@}
-
-               //@{
-               /** Terminal type constant for an Audio class terminal descriptor. See the Audio class specification for more details. */
-               
-               #define TERMINAL_UNDEFINED           0x0100
-               #define TERMINAL_STREAMING           0x0101
-               #define TERMINAL_VENDOR              0x01FF
-               #define TERMINAL_IN_UNDEFINED        0x0200
-               #define TERMINAL_IN_MIC              0x0201
-               #define TERMINAL_IN_DESKTOP_MIC      0x0202
-               #define TERMINAL_IN_PERSONAL_MIC     0x0203
-               #define TERMINAL_IN_OMNIDIR_MIC      0x0204
-               #define TERMINAL_IN_MIC_ARRAY        0x0205
-               #define TERMINAL_IN_PROCESSING_MIC   0x0206
-               #define TERMINAL_IN_OUT_UNDEFINED    0x0300
-               #define TERMINAL_OUT_SPEAKER         0x0301
-               #define TERMINAL_OUT_HEADPHONES      0x0302
-               #define TERMINAL_OUT_HEAD_MOUNTED    0x0303
-               #define TERMINAL_OUT_DESKTOP         0x0304
-               #define TERMINAL_OUT_ROOM            0x0305
-               #define TERMINAL_OUT_COMMUNICATION   0x0306
-               #define TERMINAL_OUT_LOWFREQ         0x0307
-               //@}
-
-               /** Convenience macro, to fill a 24-bit AudioSampleFreq_t structure with the given sample rate as a 24-bit number.
-                *
-                *  \param[in] freq  Required audio sampling frequency in HZ
-                */
-               #define SAMPLE_FREQ(freq)  {LowWord: ((uint32_t)(freq) & 0x00FFFF), HighByte: (((uint32_t)(freq) >> 16) & 0x0000FF)}
-               
-               /** Mask for the attributes parameter of an Audio class specific Endpoint descriptor, indicating that the endpoint
-                *  accepts only filled endpoint packets of audio samples.
-                */
-               #define EP_ACCEPTS_ONLY_FULL_PACKETS (1 << 7)
-
-               /** Mask for the attributes parameter of an Audio class specific Endpoint descriptor, indicating that the endpoint
-                *  will accept partially filled endpoint packets of audio samples.
-                */
-               #define EP_ACCEPTS_SMALL_PACKETS     (0 << 7)
-