From 525a9059397cd83be5532c66a3f0e5926f69bf10 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Thu, 20 Nov 2014 17:29:36 +0000 Subject: [PATCH] Required descriptor changes for input channel counts over 18 (now handles up to 32) --- module_usb_audio/endpoint0/descriptors.h | 200 ++++++++++++++++++++++- 1 file changed, 197 insertions(+), 3 deletions(-) diff --git a/module_usb_audio/endpoint0/descriptors.h b/module_usb_audio/endpoint0/descriptors.h index 8d35139c..f4063baa 100644 --- a/module_usb_audio/endpoint0/descriptors.h +++ b/module_usb_audio/endpoint0/descriptors.h @@ -216,7 +216,50 @@ typedef struct STR_TABLE_ENTRY(inputChanStr_18); #endif #if (NUM_USB_CHAN_IN > 18) -#error NUM_USB_CHAN > 18 + STR_TABLE_ENTRY(inputChanStr_19); +#endif +#if (NUM_USB_CHAN_IN > 19) + STR_TABLE_ENTRY(inputChanStr_20); +#endif +#if (NUM_USB_CHAN_IN > 20) + STR_TABLE_ENTRY(inputChanStr_21); +#endif +#if (NUM_USB_CHAN_IN > 21) + STR_TABLE_ENTRY(inputChanStr_22); +#endif +#if (NUM_USB_CHAN_IN > 22) + STR_TABLE_ENTRY(inputChanStr_23); +#endif +#if (NUM_USB_CHAN_IN > 23) + STR_TABLE_ENTRY(inputChanStr_24); +#endif +#if (NUM_USB_CHAN_IN > 24) + STR_TABLE_ENTRY(inputChanStr_25); +#endif +#if (NUM_USB_CHAN_IN > 25) + STR_TABLE_ENTRY(inputChanStr_26); +#endif +#if (NUM_USB_CHAN_IN > 26) + STR_TABLE_ENTRY(inputChanStr_27); +#endif +#if (NUM_USB_CHAN_IN > 27) + STR_TABLE_ENTRY(inputChanStr_28); +#endif +#if (NUM_USB_CHAN_IN > 28) + STR_TABLE_ENTRY(inputChanStr_29); +#endif +#if (NUM_USB_CHAN_IN > 29) + STR_TABLE_ENTRY(inputChanStr_30); +#endif +#if (NUM_USB_CHAN_IN > 30) + STR_TABLE_ENTRY(inputChanStr_31); +#endif +#if (NUM_USB_CHAN_IN > 31) + STR_TABLE_ENTRY(inputChanStr_32); +#endif + +#if (NUM_USB_CHAN_IN > 32) +#error NUM_USB_CHAN > 32 #endif #if defined(MIXER) && (MAX_MIX_COUNT > 0) @@ -1175,7 +1218,116 @@ StringDescTable_t g_strTable = #endif #if (NUM_USB_CHAN_IN > 18) -#error NUM_USB_CHAN_IN > 18 +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 18) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_19 = "Analogue 19/SPDIF 1", + #else + .inputChanStr_19 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 17) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_19 = "Analogue 19/SPDIF 2", + #else + .inputChanStr_19 = "S/PDIF 2", + #endif +#else + .inputChanStr_19 = "Analogue 19", +#endif +#endif + +#if (NUM_USB_CHAN_IN > 19) +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 19) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_20 = "Analogue 20/SPDIF 1", + #else + .inputChanStr_20 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 18) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_20 = "Analogue 20/SPDIF 2", + #else + .inputChanStr_20 = "S/PDIF 2", + #endif +#else + .inputChanStr_20 = "Analogue 20", +#endif +#endif + +#if (NUM_USB_CHAN_IN > 20) +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 20) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_21 = "Analogue 21/SPDIF 1", + #else + .inputChanStr_21 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 19) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_21 = "Analogue 21/SPDIF 2", + #else + .inputChanStr_21 = "S/PDIF 2", + #endif +#else + .inputChanStr_21 = "Analogue 21", +#endif +#endif + +#if (NUM_USB_CHAN_IN > 21) +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 21) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_22 = "Analogue 22/SPDIF 1", + #else + .inputChanStr_22 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 20) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_22 = "Analogue 22/SPDIF 2", + #else + .inputChanStr_22 = "S/PDIF 2", + #endif +#else + .inputChanStr_22 = "Analogue 22", +#endif +#endif + +#if (NUM_USB_CHAN_IN > 22) +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 22) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_23 = "Analogue 23/SPDIF 1", + #else + .inputChanStr_23 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 21) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_23 = "Analogue 23/SPDIF 2", + #else + .inputChanStr_23 = "S/PDIF 2", + #endif +#else + .inputChanStr_23 = "Analogue 23", +#endif +#endif + +#if (NUM_USB_CHAN_IN > 23) +#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 23) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_24 = "Analogue 24/SPDIF 1", + #else + .inputChanStr_24 = "S/PDIF 1", + #endif +#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 21) + #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) + .inputChanStr_24 = "Analogue 25/SPDIF 2", + #else + .inputChanStr_24 = "S/PDIF 2", + #endif +#else + .inputChanStr_24 = "Analogue 24", +#endif +#endif + + +#if (NUM_USB_CHAN_IN > 24) +#error NUM_USB_CHAN_IN > 24 #endif #if defined(MIXER) && (MAX_MIX_COUNT > 0) @@ -2071,7 +2223,49 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2= 0x0000000F, /* bmaControls(18) */ #endif #if (NUM_USB_CHAN_IN > 18) -#error NUM_USB_CHAN_IN > 18 + 0x0000000F, /* bmaControls(19) */ +#endif +#if (NUM_USB_CHAN_IN > 19) + 0x0000000F, /* bmaControls(20) */ +#endif +#if (NUM_USB_CHAN_IN > 20) + 0x0000000F, /* bmaControls(21) */ +#endif +#if (NUM_USB_CHAN_IN > 21) + 0x0000000F, /* bmaControls(22) */ +#endif +#if (NUM_USB_CHAN_IN > 22) + 0x0000000F, /* bmaControls(23) */ +#endif +#if (NUM_USB_CHAN_IN > 23) + 0x0000000F, /* bmaControls(24) */ +#endif +#if (NUM_USB_CHAN_IN > 24) + 0x0000000F, /* bmaControls(25) */ +#endif +#if (NUM_USB_CHAN_IN > 25) + 0x0000000F, /* bmaControls(26) */ +#endif +#if (NUM_USB_CHAN_IN > 26) + 0x0000000F, /* bmaControls(27) */ +#endif +#if (NUM_USB_CHAN_IN > 27) + 0x0000000F, /* bmaControls(28) */ +#endif +#if (NUM_USB_CHAN_IN > 28) + 0x0000000F, /* bmaControls(29) */ +#endif +#if (NUM_USB_CHAN_IN > 29) + 0x0000000F, /* bmaControls(30) */ +#endif +#if (NUM_USB_CHAN_IN > 30) + 0x0000000F, /* bmaControls(31) */ +#endif +#if (NUM_USB_CHAN_IN > 31) + 0x0000000F, /* bmaControls(32) */ +#endif +#if (NUM_USB_CHAN_IN > 32) +#error NUM_USB_CHAN_IN > 32 #endif }, 0, /* 60 iFeature */