forked from PAWPAW-Mirror/lib_xua
UAC1.0 descriptors now support multi-channel volume control (previously were hard-coded as stereo)
This commit is contained in:
@@ -2246,7 +2246,7 @@ const unsigned num_freqs_a1 = MAX(3, (0
|
|||||||
#endif
|
#endif
|
||||||
));
|
));
|
||||||
|
|
||||||
#define AC_TOTAL_LENGTH (AC_LENGTH + (INPUT_INTERFACES_A1 * (19 + num_freqs_a1 * 3)) + (OUTPUT_INTERFACES_A1 * (19 + (num_freqs_a1 *3))))
|
#define AC_TOTAL_LENGTH (AC_LENGTH + (INPUT_INTERFACES_A1 * (17 + NUM_USB_CHAN_IN_FS + num_freqs_a1 * 3)) + (OUTPUT_INTERFACES_A1 * (17 + NUM_USB_CHAN_OUT_FS + (num_freqs_a1 *3))))
|
||||||
#define STREAMING_INTERFACES (INPUT_INTERFACES_A1 + OUTPUT_INTERFACES_A1)
|
#define STREAMING_INTERFACES (INPUT_INTERFACES_A1 + OUTPUT_INTERFACES_A1)
|
||||||
|
|
||||||
/* Number of interfaces for Audio 1.0 (+1 for control ) */
|
/* Number of interfaces for Audio 1.0 (+1 for control ) */
|
||||||
@@ -2322,15 +2322,41 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
11, /* iTerminal */
|
11, /* iTerminal */
|
||||||
|
|
||||||
/* CS_Interface class specific AC interface feature unit descriptor - mute & volume for dac */
|
/* CS_Interface class specific AC interface feature unit descriptor - mute & volume for dac */
|
||||||
0x0A,
|
(8 + NUM_USB_CHAN_OUT_FS),
|
||||||
UAC_CS_DESCTYPE_INTERFACE,
|
UAC_CS_DESCTYPE_INTERFACE,
|
||||||
UAC_CS_AC_INTERFACE_SUBTYPE_FEATURE_UNIT, /* 2 bDescriptorSubType: FEATURE_UNIT */
|
UAC_CS_AC_INTERFACE_SUBTYPE_FEATURE_UNIT, /* 2 bDescriptorSubType: FEATURE_UNIT */
|
||||||
0x0A, /* unitID */
|
0x0A, /* unitID */
|
||||||
0x01, /* sourceID - ID of the unit/terminal to which this feature unit is connected */
|
0x01, /* sourceID - ID of the unit/terminal to which this feature unit is connected */
|
||||||
0x01, /* controlSize - 1 */
|
0x01, /* controlSize - 1 */
|
||||||
|
|
||||||
0x00, /* bmaControls(0) */
|
0x00, /* bmaControls(0) */
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 0)
|
||||||
0x03, /* bmaControls(1) */
|
0x03, /* bmaControls(1) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 1)
|
||||||
0x03, /* bmaControls(2) */
|
0x03, /* bmaControls(2) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 2)
|
||||||
|
0x03, /* bmaControls(3) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 3)
|
||||||
|
0x03, /* bmaControls(4) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 4)
|
||||||
|
0x03, /* bmaControls(5) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 5)
|
||||||
|
0x03, /* bmaControls(6) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 6)
|
||||||
|
0x03, /* bmaControls(7) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 7)
|
||||||
|
0x03, /* bmaControls(8) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_OUT_FS > 8)
|
||||||
|
#error NUM_USB_CHAN_OUT_FS > 8 currently supported
|
||||||
|
#endif
|
||||||
0x00, /* String table index */
|
0x00, /* String table index */
|
||||||
|
|
||||||
/* CS_Interface Output Terminal Descriptor - Analogue out to speaker */
|
/* CS_Interface Output Terminal Descriptor - Analogue out to speaker */
|
||||||
@@ -2368,15 +2394,40 @@ unsigned char cfgDesc_Audio1[] =
|
|||||||
0x00, /* Unused */
|
0x00, /* Unused */
|
||||||
|
|
||||||
/* CS_Interface class specific AC interface feature unit descriptor - mute & volume for adc */
|
/* CS_Interface class specific AC interface feature unit descriptor - mute & volume for adc */
|
||||||
0x0A,
|
(8 + NUM_USB_CHAN_IN_FS),
|
||||||
UAC_CS_DESCTYPE_INTERFACE,
|
UAC_CS_DESCTYPE_INTERFACE,
|
||||||
UAC_CS_AC_INTERFACE_SUBTYPE_FEATURE_UNIT, /* 2 bDescriptorSubType: FEATURE_UNIT */
|
UAC_CS_AC_INTERFACE_SUBTYPE_FEATURE_UNIT, /* 2 bDescriptorSubType: FEATURE_UNIT */
|
||||||
0x0B, /* unitID */
|
0x0B, /* unitID */
|
||||||
0x02, /* sourceID - ID of the unit/terminal to which this feature unit is connected */
|
0x02, /* sourceID - ID of the unit/terminal to which this feature unit is connected */
|
||||||
0x01, /* controlSize - 1 */
|
0x01, /* controlSize - 1 */
|
||||||
0x00, /* bmaControls(0) */
|
0x00, /* bmaControls(0) */
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 0)
|
||||||
0x03, /* bmaControls(1) */
|
0x03, /* bmaControls(1) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 1)
|
||||||
0x03, /* bmaControls(2) */
|
0x03, /* bmaControls(2) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 2)
|
||||||
|
0x03, /* bmaControls(3) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 3)
|
||||||
|
0x03, /* bmaControls(4) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 4)
|
||||||
|
0x03, /* bmaControls(5) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 5)
|
||||||
|
0x03, /* bmaControls(6) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 6)
|
||||||
|
0x03, /* bmaControls(7) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 7)
|
||||||
|
0x03, /* bmaControls(8) */
|
||||||
|
#endif
|
||||||
|
#if (NUM_USB_CHAN_IN_FS > 8)
|
||||||
|
#error NUM_USB_CHAN_IN_FS > 8 currently supported
|
||||||
|
#endif
|
||||||
0x00, /* String table index */
|
0x00, /* String table index */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user