From 630c9fbd305f2964d6e014fd05226b430cb1bdd2 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 14 Jan 2015 17:35:40 +0000 Subject: [PATCH 001/137] DFU failing when SPDIF_RX enabled due to clock block being shared. Made an attempt to rationalise CLKBLK defines. --- module_usb_audio/flashlib_user.c | 4 ++- module_usb_audio/main.xc | 29 +++++----------- module_usb_audio/uac_hwresources.h | 55 ++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 21 deletions(-) create mode 100644 module_usb_audio/uac_hwresources.h diff --git a/module_usb_audio/flashlib_user.c b/module_usb_audio/flashlib_user.c index 1ea6b428..552557c9 100644 --- a/module_usb_audio/flashlib_user.c +++ b/module_usb_audio/flashlib_user.c @@ -1,4 +1,5 @@ #include "devicedefines.h" +#include "uac_hwresources.h" #ifdef DFU @@ -18,13 +19,14 @@ fl_DeviceSpec flash_devices[] = {DFU_FLASH_DEVICE}; #endif + fl_PortHolderStruct p_flash = { XS1_PORT_1A, XS1_PORT_1B, XS1_PORT_1C, XS1_PORT_1D, - XS1_CLKBLK_1 + CLKBLK_FLASHLIB }; int flash_cmd_enable_ports() diff --git a/module_usb_audio/main.xc b/module_usb_audio/main.xc index fe609211..de6eb150 100755 --- a/module_usb_audio/main.xc +++ b/module_usb_audio/main.xc @@ -15,6 +15,7 @@ #include "xud.h" /* XMOS USB Device Layer defines and functions */ #include "devicedefines.h" /* Device specific defines */ +#include "uac_hwresources.h" #include "endpoint0.h" #include "usb_buffer.h" #include "decouple.h" @@ -101,24 +102,7 @@ on tile[AUDIO_IO_TILE] : buffered in port:32 p_i2s_adc[I2S_WIRES_ADC] = }; #endif -#if (XUD_SERIES_SUPPORT == XUD_L_SERIES) && (AUDIO_IO_TILE == XUD_TILE) -/* Note: L series ref clocked clocked from USB clock when USB enabled - use another clockblock for MIDI - * if MIDI and XUD on same tile. See XUD documentation. - * - * This is a clash with S/PDIF Tx but simultaneous S/PDIF and MIDI not currently supported on single tile device - * - */ -/* TODO should include tile here */ -#define CLKBLK_MIDI XS1_CLKBLK_1; -#else -#define CLKBLK_MIDI XS1_CLKBLK_REF; -#endif -#define CLKBLK_ADAT_RX XS1_CLKBLK_3 -#define CLKBLK_SPDIF_TX XS1_CLKBLK_1 -#define CLKBLK_SPDIF_RX XS1_CLKBLK_1 -#define CLKBLK_MCLK XS1_CLKBLK_2 -#define CLKBLK_I2S_BIT XS1_CLKBLK_3 -#define CLKBLK_XUD XS1_CLKBLK_4 /* Note XUD for U-series uses CLKBLK_5 also (see XUD_Ports.xc) */ + #ifndef CODEC_MASTER on tile[AUDIO_IO_TILE] : buffered out port:32 p_lrclk = PORT_I2S_LRCLK; @@ -171,7 +155,8 @@ on tile[AUDIO_IO_TILE] : clock clk_mst_spd = CLKBLK_SPDIF_TX; on tile[XUD_TILE] : clock clk_spd_rx = CLKBLK_SPDIF_RX; #endif -#ifdef ADAT_RX +#if(XUD_SERIES_SUPPORT != XUD_U_SERIES) && defined(ADAT_RX) +/* Cannot used CLKBLK_REF for L/G-series as this is USB clock */ on tile[XUD_TILE] : clock clk_adat_rx = CLKBLK_ADAT_RX; #endif @@ -197,7 +182,7 @@ on tile[XUD_TILE] : out port p_usb_rst = PORT_USB_RESET; #if (XUD_SERIES_SUPPORT != XUD_U_SERIES) /* L Series also needs a clock block for this port */ -on tile[XUD_TILE] : clock clk = CLKBLK_XUD; +on tile[XUD_TILE] : clock clk = CLKBLK_USB_RST; #else #define clk null #endif @@ -571,8 +556,12 @@ int main() on stdcore[0] : { set_thread_fast_mode_on(); + +#if(XUD_SERIES_SUPPORT != XUD_U_SERIES) + /* Can't use REF clock on L-series as this is usb clock */ set_port_clock(p_adat_rx, clk_adat_rx); start_clock(clk_adat_rx); +#endif while (1) { adatReceiver48000(p_adat_rx, c_adat_rx); diff --git a/module_usb_audio/uac_hwresources.h b/module_usb_audio/uac_hwresources.h new file mode 100644 index 00000000..e8d2e8e0 --- /dev/null +++ b/module_usb_audio/uac_hwresources.h @@ -0,0 +1,55 @@ + +#ifndef _UAC_HWRESOURCES_H_ +#define _UAC_HWRESOURCES_H_ + +#include "xud.h" /* XMOS USB Device Layer defines and functions */ + +#if (XUD_SERIES_SUPPORT != XUD_U_SERIES) + +/* XUD_L_SERIES and XUD_G_SERIES */ + +#if (AUDIO_IO_TILE == XUD_TILE) +/* Note: L series ref clocked clocked from USB clock when USB enabled - use another clockblock for MIDI + * if MIDI and XUD on same tile. See XUD documentation. + * + * This is a clash with S/PDIF Tx but simultaneous S/PDIF and MIDI not currently supported on single tile device + * + */ +#define CLKBLK_MIDI XS1_CLKBLK_1; +#else +#define CLKBLK_MIDI XS1_CLKBLK_REF; +#endif + +#define CLKBLK_SPDIF_TX XS1_CLKBLK_1 +#define CLKBLK_SPDIF_RX XS1_CLKBLK_1 +#define CLKBLK_MCLK XS1_CLKBLK_2 /* Note, potentially used twice */ +#define CLKBLK_ADAT_RX XS1_CLKBLK_3 +#define CLKBLK_USB_RST XS1_CLKBLK_4 /* Clock block passed into L/G series XUD */ +#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */ + +/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */ +/* #define CLKBLK_MCLK XS1_CLKBLK_2 */ +#define CLKBLK_I2S_BIT XS1_CLKBLK_3 + +#else + +/* XUD_U_SERIES */ + +#define CLKBLK_MIDI XS1_CLKBLK_REF; +#define CLKBLK_SPDIF_TX XS1_CLKBLK_1 +#define CLKBLK_SPDIF_RX XS1_CLKBLK_1 +#define CLKBLK_MCLK XS1_CLKBLK_2 /* Note, potentially used twice */ +#define CLKBLK_FLASHLIB XS1_CLKBLK_3 /* Clock block for use by flash lib */ + +/* use REF for ADAT_RX on U-series */ +/* #define CLKBLK_ADAT_RX XS1_CLKBLK_3 */ +/* Note, U-series XUD uses clock blocks 4 and 5 - see XUD_Ports.xc */ + +#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */ + +/* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */ +/* #define CLKBLK_MCLK XS1_CLKBLK_2 */ +#define CLKBLK_I2S_BIT XS1_CLKBLK_3 +#endif + +#endif /* _UAC_HWRESOURCES_H_ */ From ab8e0d8af72eeab75b8876cfff9c2186db074157 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 14 Jan 2015 17:37:04 +0000 Subject: [PATCH 002/137] Added DFU fail issue to changelog --- CHANGELOG.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index bbf6fa48..2a6666e1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,8 @@ HEAD ---- - RESOLVED: Build issue with CODEC_MASTER (xCore is I2S slave) enabled - RESOLVED: Channel ordering issue in when TDM and CODEC_MASTER mode enabled + - RESOLVED: DFU fails when SPDIF_RX enabled due to clock block being shared between SPDIF + core and FlashLib 6.11.0 ------ From 130553bae078a5c761a16ce5c93a9fdb578dc558 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Thu, 29 Jan 2015 15:46:21 +0000 Subject: [PATCH 003/137] White space in preprocessor item only --- module_usb_audio/endpoint0/descriptors.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module_usb_audio/endpoint0/descriptors.h b/module_usb_audio/endpoint0/descriptors.h index 0ffe3c9b..8f1a9fc3 100644 --- a/module_usb_audio/endpoint0/descriptors.h +++ b/module_usb_audio/endpoint0/descriptors.h @@ -1831,7 +1831,7 @@ typedef struct // USB_Descriptor_Audio_MixerUnit_t Audio_MixerUnit; unsigned char configDesc_MixerUnit[MIXER_LENGTH]; #endif -#if defined (SPDIF_RX) || defined (ADAT_RX) +#if defined(SPDIF_RX) || defined(ADAT_RX) /* Interrupt EP */ USB_Descriptor_Endpoint_t Audio_Int_Endpoint; #endif From 68162785574760e60bb60b1c2ebd5535d9e3174f Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Thu, 29 Jan 2015 18:33:45 +0000 Subject: [PATCH 004/137] Basic addition of ADAT tx core. --- module_usb_audio/audio.xc | 65 +++++++++++++++++++++++++++++--- module_usb_audio/devicedefines.h | 15 ++++++++ module_usb_audio/main.xc | 4 ++ 3 files changed, 78 insertions(+), 6 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index 5c550503..c41f392f 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -19,6 +19,9 @@ #ifdef SPDIF #include "SpdifTransmit.h" #endif +#ifdef ADAT_TX +#include "adat_tx.h" +#endif #include "commands.h" #include "xc_ptr.h" @@ -76,6 +79,10 @@ extern port p_mclk_in; extern buffered out port:32 p_spdif_tx; #endif +#ifdef ADAT_TX +extern buffered out port:32 p_adat_tx; +#endif + extern clock clk_audio_mclk; extern clock clk_audio_bclk; extern clock clk_mst_spd; @@ -378,12 +385,17 @@ static inline void InitPorts(unsigned divide) /* I2S delivery thread */ #pragma unsafe arrays -unsigned static deliver(chanend c_out, chanend ?c_spd_out, unsigned divide, unsigned curSamFreq, -#if(defined(SPDIF_RX) || defined(ADAT_RX)) -chanend c_dig_rx, +unsigned static deliver(chanend c_out, chanend ?c_spd_out, +#ifdef ADAT_TX + chanend c_adat_out, #endif -chanend ?c_adc) + unsigned divide, unsigned curSamFreq, +#if(defined(SPDIF_RX) || defined(ADAT_RX)) + chanend c_dig_rx, +#endif + chanend ?c_adc) { + #if (I2S_CHANS_ADC != 0) || defined(SPDIF) unsigned sample; #endif @@ -397,6 +409,11 @@ chanend ?c_adc) unsigned tmp; unsigned index; +#ifdef ADAT_TX + unsigned adatSmuxMode = 0; +#endif + + #ifdef RAMP_CHECK unsigned prev=0; int started = 0; @@ -824,6 +841,11 @@ chanend ?c_config, chanend ?c) #ifdef SPDIF chan c_spdif_out; #endif +#ifdef ADAT_TX + chan c_adat_out; + unsigned adatSmuxMode = 0; +#endif + unsigned curSamFreq = DEFAULT_FREQ; unsigned curSamRes_DAC = STREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS; /* Default to something reasonable */ unsigned curSamRes_ADC = STREAM_FORMAT_INPUT_1_RESOLUTION_BITS; /* Default to something reasonable - note, currently this never changes*/ @@ -879,9 +901,13 @@ chanend ?c_config, chanend ?c) } #endif + /* Configure ADAT/SPDIF tx ports */ #ifdef SPDIF SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in); #endif +#ifdef ADAT_TX + configure_out_port_no_ready(p_adat_tx, clk_audio_mclk, 0); +#endif /* Perform required CODEC/ADC/DAC initialisation */ AudioHwInit(c_config); @@ -892,10 +918,18 @@ chanend ?c_config, chanend ?c) if ((MCLK_441 % curSamFreq) == 0) { mClk = MCLK_441; +#ifdef ADAT_TX + /* Calculate ADAT SMUX mode (1, 2, 4) */ + adatSmuxMode = curSamFreq / 44100; +#endif } else if ((MCLK_48 % curSamFreq) == 0) { mClk = MCLK_48; +#ifdef ADAT_TX + /* Calculate ADAT SMUX mode (1, 2, 4) */ + adatSmuxMode = curSamFreq / 48000; +#endif } /* Calculate master clock to bit clock (or DSD clock) divide for current sample freq @@ -1011,8 +1045,6 @@ chanend ?c_config, chanend ?c) } firstRun = 0; - - par { @@ -1023,6 +1055,11 @@ chanend ?c_config, chanend ?c) } #endif +#ifdef ADAT_TX + { + adat_tx_port(c_adat_out, p_adat_tx); + } +#endif { #ifdef SPDIF /* Communicate master clock and sample freq to S/PDIF thread */ @@ -1030,11 +1067,27 @@ chanend ?c_config, chanend ?c) outuint(c_spdif_out, mClk); #endif +#ifdef ADAT_TX + // Configure ADAT parameters ... + // + // adat_oversampling = 256 for MCLK = 12M288 or 11M2896 + // = 512 for MCLK = 24M576 or 22M5792 + // = 1024 for MCLK = 49M152 or 45M1584 + // + // adatSmuxMode = 1 for FS = 44K1 or 48K0 + // = 2 for FS = 88K2 or 96K0 + // = 4 for FS = 176K4 or 192K0 + outuint(c_adat_out, mClk/curSamFreq ); + outuint(c_adat_out, adatSmuxMode); +#endif command = deliver(c_mix_out, #ifdef SPDIF c_spdif_out, #else null, +#endif +#ifdef ADAT_TX + c_adat_out, #endif divide, curSamFreq, #if defined (ADAT_RX) || defined (SPDIF_RX) diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h index 4d40c5fe..887cc340 100644 --- a/module_usb_audio/devicedefines.h +++ b/module_usb_audio/devicedefines.h @@ -231,6 +231,21 @@ #undef SPDIF #endif +/** + * @brief Enables ADAT Tx. Default: 0 (Disabled) + */ +#ifndef ADAT_TX +#define ADAT_TX (0) +#endif + +/* Tidy up old SPDIF usage */ +#if defined(ADAT_TX) && (ADAT_TX == 0) +#undef ADAT_TX +#endif + + + + /** * @brief Defines which output channels (stereo) should be output on S/PDIF. Note, Output channels indexed from 0. * diff --git a/module_usb_audio/main.xc b/module_usb_audio/main.xc index de6eb150..e88c7e0d 100755 --- a/module_usb_audio/main.xc +++ b/module_usb_audio/main.xc @@ -119,6 +119,10 @@ on tile[XUD_TILE] : in port p_for_mclk_count = PORT_MCLK_COUNT; on tile[AUDIO_IO_TILE] : buffered out port:32 p_spdif_tx = PORT_SPDIF_OUT; #endif +#ifdef ADAT_TX +on stdcore[AUDIO_IO_TILE] : buffered out port:32 p_adat_tx = PORT_ADAT_OUT; +#endif + #ifdef ADAT_RX on stdcore[XUD_TILE] : buffered in port:32 p_adat_rx = PORT_ADAT_IN; #endif From 9877618786d0ec97c61d54f3db264132a43c744b Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 30 Jan 2015 16:05:26 +0000 Subject: [PATCH 005/137] Added ADAT_TX define --- module_usb_audio/devicedefines.h | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h index 887cc340..3f8f7e82 100644 --- a/module_usb_audio/devicedefines.h +++ b/module_usb_audio/devicedefines.h @@ -231,11 +231,20 @@ #undef SPDIF #endif +/** + * @brief Defines which output channels (stereo) should be output on S/PDIF. Note, Output channels indexed from 0. + * + * Default: 0 (i.e. channels 0 & 1) + * */ +#ifndef SPDIF_TX_INDEX +#define SPDIF_TX_INDEX (0) +#endif + /** * @brief Enables ADAT Tx. Default: 0 (Disabled) */ #ifndef ADAT_TX -#define ADAT_TX (0) +#define ADAT_TX (0) #endif /* Tidy up old SPDIF usage */ @@ -243,16 +252,13 @@ #undef ADAT_TX #endif - - - /** - * @brief Defines which output channels (stereo) should be output on S/PDIF. Note, Output channels indexed from 0. + * @brief Defines which output channels (8) should be output on ADAT. Note, Output channels indexed from 0. * - * Default: 0 (i.e. channels 0 & 1) + * Default: 0 (i.e. channels [0:7]) * */ -#ifndef SPDIF_TX_INDEX -#define SPDIF_TX_INDEX (0) +#ifndef ADAT_TX_INDEX +#define ADAT_TX_INDEX (0) #endif /** From a9de259963d4a31e206e1622735170585842df34 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 30 Jan 2015 16:05:58 +0000 Subject: [PATCH 006/137] Initial addition of adat sample transfer into audio core --- module_usb_audio/audio.xc | 63 +++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 6 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index c41f392f..bbea6c34 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -160,6 +160,53 @@ static inline void doI2SClocks(unsigned divide) } #endif +#define ADAT_NUM_CHANNELS 8 + +#pragma unsafe arrays +static inline void TransferAdatTxSamples(chanend c_adat_data, const unsigned samplesFromHost[], int smux) +{ + /* SMUX 1 : Send 8 channels at sample rate (i.e. 44.1/48kHz) + * SMUX 2 : Send 4 channels at sample rate (i.e. 88.2/96kHz) + * SMUX 4 : Send 2 channels at sample rate (i.e. 176.4/192kHz) + * + * so.. + * + * for (int i = 0; i < ADAT_NUM_CHANNEL/smux; i++) + * { + * outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); + * } + * + * Lets un-roll for performance.. + */ + switch (smux) + { + case 1: + #pragma loop unroll + for (int i = 0; i < ADAT_NUM_CHANNELS; i++) + { + outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); + } + break; + + case 2: + #pragma loop unroll + for (int i = 0; i < (ADAT_NUM_CHANNELS/2); i++) + { + outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); + } + break; + + case 4: + #pragma loop unroll + for (int i = 0; i < (ADAT_NUM_CHANNELS/4); i++) + { + outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); + } + break; + } +} + + #pragma unsafe arrays static inline unsigned DoSampleTransfer(chanend c_out, int readBuffNo, unsigned underflowWord) { @@ -388,6 +435,7 @@ static inline void InitPorts(unsigned divide) unsigned static deliver(chanend c_out, chanend ?c_spd_out, #ifdef ADAT_TX chanend c_adat_out, + unsigned adatSmuxMode, #endif unsigned divide, unsigned curSamFreq, #if(defined(SPDIF_RX) || defined(ADAT_RX)) @@ -409,11 +457,6 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, unsigned tmp; unsigned index; -#ifdef ADAT_TX - unsigned adatSmuxMode = 0; -#endif - - #ifdef RAMP_CHECK unsigned prev=0; int started = 0; @@ -653,6 +696,10 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, #endif } +#if defined ADAT_TX + TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode); +#endif + #ifndef CODEC_MASTER #ifdef I2S_MODE_TDM if(frameCount == (I2S_CHANS_PER_FRAME-2)) @@ -1088,6 +1135,7 @@ chanend ?c_config, chanend ?c) #endif #ifdef ADAT_TX c_adat_out, + adatSmuxMode, #endif divide, curSamFreq, #if defined (ADAT_RX) || defined (SPDIF_RX) @@ -1127,10 +1175,13 @@ chanend ?c_config, chanend ?c) } } } - #ifdef SPDIF /* Notify S/PDIF thread of impending new freq... */ outct(c_spdif_out, XS1_CT_END); +#endif +#ifdef ADAT_TX + /* Notify ADAT Tx thread of impending new freq... */ + outct(c_adat_out, XS1_CT_END); #endif } } From 385b26b7fb8c1196876e805657b081d00421efe1 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Tue, 17 Feb 2015 18:23:18 +0000 Subject: [PATCH 007/137] Further work to debug adding adat tx to deliver --- module_usb_audio/audio.xc | 47 +++++++++++++++++++++++++++++---------- module_usb_audio/main.xc | 2 -- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index bbea6c34..80eb64d8 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -25,6 +25,7 @@ #include "commands.h" #include "xc_ptr.h" +#include "print.h" static unsigned samplesOut[NUM_USB_CHAN_OUT]; @@ -163,8 +164,20 @@ static inline void doI2SClocks(unsigned divide) #define ADAT_NUM_CHANNELS 8 #pragma unsafe arrays -static inline void TransferAdatTxSamples(chanend c_adat_data, const unsigned samplesFromHost[], int smux) +static inline void TransferAdatTxSamples(chanend c_adat_data, unsigned samplesFromHost[], int smux) { + + + #pragma loop unroll + for (int i = 0; i < ADAT_NUM_CHANNELS; i++) + { + outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); + } + +} + +#if 0 + /* SMUX 1 : Send 8 channels at sample rate (i.e. 44.1/48kHz) * SMUX 2 : Send 4 channels at sample rate (i.e. 88.2/96kHz) * SMUX 4 : Send 2 channels at sample rate (i.e. 176.4/192kHz) @@ -181,11 +194,7 @@ static inline void TransferAdatTxSamples(chanend c_adat_data, const unsigned sam switch (smux) { case 1: - #pragma loop unroll - for (int i = 0; i < ADAT_NUM_CHANNELS; i++) - { - outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); - } + break; case 2: @@ -205,7 +214,7 @@ static inline void TransferAdatTxSamples(chanend c_adat_data, const unsigned sam break; } } - +#endif #pragma unsafe arrays static inline unsigned DoSampleTransfer(chanend c_out, int readBuffNo, unsigned underflowWord) @@ -696,9 +705,7 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, #endif } -#if defined ADAT_TX - TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode); -#endif + #ifndef CODEC_MASTER #ifdef I2S_MODE_TDM @@ -710,6 +717,10 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, p_lrclk <: 0x7FFFFFFF; #endif #endif + for(int i = 0; i < 8; i++) + outuint(c_adat_out, 0); + + index = 0; #pragma xta endpoint "i2s_output_r" @@ -725,6 +736,13 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, #ifndef CODEC_MASTER doI2SClocks(divide); #endif + +#ifdef ADAT_TX + // TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode); + //for(int i = 0; i < 4; i++) + // outuint(c_adat_out, 0); + +#endif #if (I2S_CHANS_ADC != 0) index = 0; @@ -953,7 +971,10 @@ chanend ?c_config, chanend ?c) SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in); #endif #ifdef ADAT_TX - configure_out_port_no_ready(p_adat_tx, clk_audio_mclk, 0); + configure_clock_src(clk_mst_spd, p_mclk_in); + configure_out_port_no_ready(p_adat_tx, clk_mst_spd, 0); + set_clock_fall_delay(clk_mst_spd, 7); + start_clock(clk_mst_spd); #endif /* Perform required CODEC/ADC/DAC initialisation */ @@ -1104,6 +1125,7 @@ chanend ?c_config, chanend ?c) #ifdef ADAT_TX { + set_thread_fast_mode_on(); adat_tx_port(c_adat_out, p_adat_tx); } #endif @@ -1124,7 +1146,7 @@ chanend ?c_config, chanend ?c) // adatSmuxMode = 1 for FS = 44K1 or 48K0 // = 2 for FS = 88K2 or 96K0 // = 4 for FS = 176K4 or 192K0 - outuint(c_adat_out, mClk/curSamFreq ); + outuint(c_adat_out, mClk/curSamFreq); outuint(c_adat_out, adatSmuxMode); #endif command = deliver(c_mix_out, @@ -1180,6 +1202,7 @@ chanend ?c_config, chanend ?c) outct(c_spdif_out, XS1_CT_END); #endif #ifdef ADAT_TX + /* Notify ADAT Tx thread of impending new freq... */ outct(c_adat_out, XS1_CT_END); #endif diff --git a/module_usb_audio/main.xc b/module_usb_audio/main.xc index e88c7e0d..646406e5 100755 --- a/module_usb_audio/main.xc +++ b/module_usb_audio/main.xc @@ -151,9 +151,7 @@ on tile[AUDIO_IO_TILE] : buffered in port:1 p_midi_rx = PORT_MIDI_IN; on tile[AUDIO_IO_TILE] : clock clk_midi = CLKBLK_MIDI; #endif -#ifdef SPDIF on tile[AUDIO_IO_TILE] : clock clk_mst_spd = CLKBLK_SPDIF_TX; -#endif #ifdef SPDIF_RX on tile[XUD_TILE] : clock clk_spd_rx = CLKBLK_SPDIF_RX; From 1447be3ca0188013d60fc452287ea060c533fed6 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 27 Feb 2015 19:26:15 +0000 Subject: [PATCH 008/137] Added ADAT tx via shared memory buffer. Also added SMUX re-shuffle code. --- module_usb_audio/audio.xc | 129 +++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 64 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index 80eb64d8..6929e9f5 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -161,60 +161,58 @@ static inline void doI2SClocks(unsigned divide) } #endif -#define ADAT_NUM_CHANNELS 8 +unsigned adatCounter = 0; +unsigned adatSamples[8]; #pragma unsafe arrays -static inline void TransferAdatTxSamples(chanend c_adat_data, unsigned samplesFromHost[], int smux) +static inline void TransferAdatTxSamples(chanend c_adat_out, const unsigned samplesFromHost[], int smux, int handshake) { - - #pragma loop unroll - for (int i = 0; i < ADAT_NUM_CHANNELS; i++) - { - outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); - } - -} - -#if 0 - - /* SMUX 1 : Send 8 channels at sample rate (i.e. 44.1/48kHz) - * SMUX 2 : Send 4 channels at sample rate (i.e. 88.2/96kHz) - * SMUX 4 : Send 2 channels at sample rate (i.e. 176.4/192kHz) - * - * so.. - * - * for (int i = 0; i < ADAT_NUM_CHANNEL/smux; i++) - * { - * outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); - * } - * - * Lets un-roll for performance.. - */ - switch (smux) + /* Do some re-arranging for SMUX.. */ + unsafe { - case 1: - - break; - - case 2: - #pragma loop unroll - for (int i = 0; i < (ADAT_NUM_CHANNELS/2); i++) + unsigned * unsafe samplesFromHostAdat = &samplesFromHost[ADAT_TX_INDEX]; + + /* Note, when smux == 1 this loop just does a straight 1:1 copy */ + //if(smux != 1) + { + int adatSampleIndex = adatCounter; + for(int i = 0; i < (8/smux); i++) { - outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); - } - break; - - case 4: - #pragma loop unroll - for (int i = 0; i < (ADAT_NUM_CHANNELS/4); i++) - { - outuint(c_adat_data, samplesFromHost[ADAT_TX_INDEX + i]); - } - break; + adatSamples[adatSampleIndex] = samplesFromHostAdat[i]; + adatSampleIndex += smux; + } + } } -} + + adatCounter++; + + if(adatCounter == smux) + { + +#ifdef ADAT_TX_USE_SHARED_BUFF + unsafe + { + /* Wait for ADAT core to be done with buffer */ + /* Note, we are "running ahead" of the ADAT core */ + inuint(c_adat_out); + + /* Send buffer pointer over to ADAT core */ + volatile unsigned * unsafe samplePtr = &adatSamples; + outuint(c_adat_out, (unsigned) samplePtr); + } +#else +#pragma loop unroll + for (int i = 0; i < 8; i++) + { + outuint(c_adat_out, samplesFromHost[ADAT_TX_INDEX + i]); + } #endif + adatCounter = 0; + } + +} + #pragma unsafe arrays static inline unsigned DoSampleTransfer(chanend c_out, int readBuffNo, unsigned underflowWord) @@ -482,6 +480,8 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, unsigned frameCount = 0; + adatCounter = 0; + #if(DSD_CHANS_DAC != 0) if(dsdMode == DSD_MODE_DOP) { @@ -493,15 +493,19 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, } #endif -#if 1 unsigned command = DoSampleTransfer(c_out, readBuffNo, underflowWord); - +#ifdef ADAT_TX + unsafe{ + //TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode, 0); + volatile unsigned * unsafe samplePtr = &samplesOut[ADAT_TX_INDEX]; + outuint(c_adat_out, (unsigned) samplePtr); + } +#endif if(command) { return command; } -#endif - + InitPorts(divide); /* TODO In master mode, the i/o loop assumes L/RCLK = 32bit clocks. We should check this every interation @@ -646,6 +650,9 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, /* Clock out the LR Clock, the DAC data and Clock in the next sample into ADC */ doI2SClocks(divide); #endif + + + #if (I2S_CHANS_ADC != 0) /* Input previous L sample into L in buffer */ @@ -668,6 +675,10 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, samplesIn_0[((frameCount-1)&(I2S_CHANS_PER_FRAME-1))+i] = bitrev(sample); // channels 1, 3, 5.. on each line. } #endif + +#ifdef ADAT_TX + TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode, 1); +#endif if(frameCount == 0) { @@ -705,8 +716,6 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, #endif } - - #ifndef CODEC_MASTER #ifdef I2S_MODE_TDM if(frameCount == (I2S_CHANS_PER_FRAME-2)) @@ -717,10 +726,6 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, p_lrclk <: 0x7FFFFFFF; #endif #endif - for(int i = 0; i < 8; i++) - outuint(c_adat_out, 0); - - index = 0; #pragma xta endpoint "i2s_output_r" @@ -737,13 +742,6 @@ unsigned static deliver(chanend c_out, chanend ?c_spd_out, doI2SClocks(divide); #endif -#ifdef ADAT_TX - // TransferAdatTxSamples(c_adat_out, samplesOut, adatSmuxMode); - //for(int i = 0; i < 4; i++) - // outuint(c_adat_out, 0); - -#endif - #if (I2S_CHANS_ADC != 0) index = 0; /* Channels 0, 2, 4.. on each line */ @@ -1202,7 +1200,10 @@ chanend ?c_config, chanend ?c) outct(c_spdif_out, XS1_CT_END); #endif #ifdef ADAT_TX - +#ifdef ADAT_TX_USE_SHARED_BUFF + /* Take out-standing handshake from ADAT core */ + inuint(c_adat_out); +#endif /* Notify ADAT Tx thread of impending new freq... */ outct(c_adat_out, XS1_CT_END); #endif From d746e8cad50fb68eb53023f55c40a1c6e62eb831 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 21:28:49 +0000 Subject: [PATCH 009/137] Added chanstringgen.py script for generating channel string portion of string table --- module_usb_audio/endpoint0/chanstringgen.py | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 module_usb_audio/endpoint0/chanstringgen.py diff --git a/module_usb_audio/endpoint0/chanstringgen.py b/module_usb_audio/endpoint0/chanstringgen.py new file mode 100644 index 00000000..4bb4e218 --- /dev/null +++ b/module_usb_audio/endpoint0/chanstringgen.py @@ -0,0 +1,53 @@ + + +def genstrings(outputChanCount, chanString, portString, structureString): + + for i in range(1,outputChanCount): + + print "#if (NUM_USB_CHAN_{c} > {iteration}-1) \n\ + #if (!defined(SPDIF_{p}) || ({i} > (SPDIF_{p}_INDEX+2)) || ({i} <= SPDIF_{p}_INDEX)) && (({i} > (ADAT_{p}_INDEX+8)) || (!defined(ADAT_{p})) || ({i} <= ADAT_{p}_INDEX))\n\ + .{s}ChanStr_{i} = \"Analogue {iteration}\", \n\ + #elif defined(ADAT_{p}) && defined(SPDIF_{p}) && ((SPDIF_{p}_INDEX+2) < ADAT_{p}_INDEX)\n\ + .{s}ChanStr_{i} = \"Analogue {iteration}/SPDIF/ADAT\",\n\ + #elif(SPDIF_{p}_INDEX < I2S_CHANS_DAC) && defined(SPDIF) \n\ + .{s}ChanStr_{i} = \"Analogue {iteration}/SPDIF\",\n\ + #elif(ADAT_{p}_INDEX < I2S_CHANS_DAC) && defined(ADAT_{p}) && ({i} <= ADAT_{p}_INDEX+8)\n\ + .{s}ChanStr_{i} = \"Analogue {iteration}/ADAT\",\n \ + #elif defined(SPDIF_{p}) && defined(ADAT_{p}) && ((SPDIF_{p}_INDEX + 2) < (ADAT_{p}_INDEX))\n\ + .{s}ChanStr_{i} = \"SPDIF/ADAT\",\n\ + #elif((SPDIF_{p}_INDEX < {i}) && ({i} <= SPDIF_{p}_INDEX+2) && defined(SPDIF_{p})) \n \ + .{s}ChanStr_{i} = \"SPDIF\",\n\ + #elif((ADAT_{p}_INDEX < {i}) && defined(ADAT_{p})) \n\ + #if({i} - ADAT_TX_INDEX == 1) \n\ + .{s}ChanStr_{i} = \"ADAT 1\", \n\ + #elif({i} - ADAT_TX_INDEX == 2) \n\ + .{s}ChanStr_{i} = \"ADAT 2\", \n\ + #elif({i} - ADAT_TX_INDEX == 3) \n\ + .{s}ChanStr_{i} = \"ADAT 3\", \n\ + #elif({i} - ADAT_TX_INDEX == 4) \n\ + .{s}ChanStr_{i} = \"ADAT 4\", \n\ + #elif({i} - ADAT_TX_INDEX == 5) \n\ + .{s}ChanStr_{i} = \"ADAT 5\", \n\ + #elif({i} - ADAT_TX_INDEX == 6) \n\ + .{s}ChanStr_{i} = \"ADAT 6\", \n\ + #elif({i} - ADAT_TX_INDEX == 7) \n\ + .{s}ChanStr_{i} = \"ADAT 7\", \n\ + #elif({i} - ADAT_TX_INDEX == 8) \n\ + .{s}ChanStr_{i} = \"ADAT 8\", \n\ + #else \n\ + .{s}ChanStr_{i} = \"ADAT \",\n\ + #endif\n \ + #endif \n\ +#endif\n\n".format(iteration=i, i=i, c=chanString, p=portString, s=structureString) + + return; + +print "/* AUTOGENERATED using stringtable.py */ \n\n" + +print "/* Output Strings */\n\n" + +genstrings(32, "OUT", "TX", "output"); + +print "/* Input Strings */\n\n" + +genstrings(32, "IN", "RX", "input"); From 91e0427d5b8e27f813bbece36fd27c048ca9981c Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 22:31:01 +0000 Subject: [PATCH 010/137] Added SPDIF channel count to chanstringgen script --- module_usb_audio/endpoint0/chanstringgen.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/module_usb_audio/endpoint0/chanstringgen.py b/module_usb_audio/endpoint0/chanstringgen.py index 4bb4e218..eb4167fe 100644 --- a/module_usb_audio/endpoint0/chanstringgen.py +++ b/module_usb_audio/endpoint0/chanstringgen.py @@ -16,7 +16,11 @@ def genstrings(outputChanCount, chanString, portString, structureString): #elif defined(SPDIF_{p}) && defined(ADAT_{p}) && ((SPDIF_{p}_INDEX + 2) < (ADAT_{p}_INDEX))\n\ .{s}ChanStr_{i} = \"SPDIF/ADAT\",\n\ #elif((SPDIF_{p}_INDEX < {i}) && ({i} <= SPDIF_{p}_INDEX+2) && defined(SPDIF_{p})) \n \ - .{s}ChanStr_{i} = \"SPDIF\",\n\ + #if({i} - SPDIF_TX_INDEX == 1) \n\ + .{s}ChanStr_{i} = \"SPDIF 1\", \n\ + #elif({i} - SPDIF_TX_INDEX == 2) \n\ + .{s}ChanStr_{i} = \"SPDIF 2\", \n\ + #endif\n\ #elif((ADAT_{p}_INDEX < {i}) && defined(ADAT_{p})) \n\ #if({i} - ADAT_TX_INDEX == 1) \n\ .{s}ChanStr_{i} = \"ADAT 1\", \n\ @@ -42,7 +46,8 @@ def genstrings(outputChanCount, chanString, portString, structureString): return; -print "/* AUTOGENERATED using stringtable.py */ \n\n" +print "/* AUTOGENERATED using stringtable.py */ \n" +print "/* Not very nice looking but the standard preprocessor is not very powerful\n and we save some memory over doing this all at runtime */" print "/* Output Strings */\n\n" From e452eaa2b079f6f1d699c6eaf23617b40d686174 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 23:40:51 +0000 Subject: [PATCH 011/137] Simplication of chanstringgen script and its preprocessor output --- module_usb_audio/endpoint0/chanstringgen.py | 84 ++++++++++----------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/module_usb_audio/endpoint0/chanstringgen.py b/module_usb_audio/endpoint0/chanstringgen.py index eb4167fe..2053c3c4 100644 --- a/module_usb_audio/endpoint0/chanstringgen.py +++ b/module_usb_audio/endpoint0/chanstringgen.py @@ -1,58 +1,56 @@ -def genstrings(outputChanCount, chanString, portString, structureString): +def genstrings(outputChanCount, chanString, portString, structureString, adc_dac): for i in range(1,outputChanCount): - print "#if (NUM_USB_CHAN_{c} > {iteration}-1) \n\ - #if (!defined(SPDIF_{p}) || ({i} > (SPDIF_{p}_INDEX+2)) || ({i} <= SPDIF_{p}_INDEX)) && (({i} > (ADAT_{p}_INDEX+8)) || (!defined(ADAT_{p})) || ({i} <= ADAT_{p}_INDEX))\n\ - .{s}ChanStr_{i} = \"Analogue {iteration}\", \n\ - #elif defined(ADAT_{p}) && defined(SPDIF_{p}) && ((SPDIF_{p}_INDEX+2) < ADAT_{p}_INDEX)\n\ - .{s}ChanStr_{i} = \"Analogue {iteration}/SPDIF/ADAT\",\n\ - #elif(SPDIF_{p}_INDEX < I2S_CHANS_DAC) && defined(SPDIF) \n\ - .{s}ChanStr_{i} = \"Analogue {iteration}/SPDIF\",\n\ - #elif(ADAT_{p}_INDEX < I2S_CHANS_DAC) && defined(ADAT_{p}) && ({i} <= ADAT_{p}_INDEX+8)\n\ - .{s}ChanStr_{i} = \"Analogue {iteration}/ADAT\",\n \ - #elif defined(SPDIF_{p}) && defined(ADAT_{p}) && ((SPDIF_{p}_INDEX + 2) < (ADAT_{p}_INDEX))\n\ - .{s}ChanStr_{i} = \"SPDIF/ADAT\",\n\ - #elif((SPDIF_{p}_INDEX < {i}) && ({i} <= SPDIF_{p}_INDEX+2) && defined(SPDIF_{p})) \n \ - #if({i} - SPDIF_TX_INDEX == 1) \n\ - .{s}ChanStr_{i} = \"SPDIF 1\", \n\ - #elif({i} - SPDIF_TX_INDEX == 2) \n\ - .{s}ChanStr_{i} = \"SPDIF 2\", \n\ - #endif\n\ - #elif((ADAT_{p}_INDEX < {i}) && defined(ADAT_{p})) \n\ - #if({i} - ADAT_TX_INDEX == 1) \n\ - .{s}ChanStr_{i} = \"ADAT 1\", \n\ - #elif({i} - ADAT_TX_INDEX == 2) \n\ - .{s}ChanStr_{i} = \"ADAT 2\", \n\ - #elif({i} - ADAT_TX_INDEX == 3) \n\ - .{s}ChanStr_{i} = \"ADAT 3\", \n\ - #elif({i} - ADAT_TX_INDEX == 4) \n\ - .{s}ChanStr_{i} = \"ADAT 4\", \n\ - #elif({i} - ADAT_TX_INDEX == 5) \n\ - .{s}ChanStr_{i} = \"ADAT 5\", \n\ - #elif({i} - ADAT_TX_INDEX == 6) \n\ - .{s}ChanStr_{i} = \"ADAT 6\", \n\ - #elif({i} - ADAT_TX_INDEX == 7) \n\ - .{s}ChanStr_{i} = \"ADAT 7\", \n\ - #elif({i} - ADAT_TX_INDEX == 8) \n\ - .{s}ChanStr_{i} = \"ADAT 8\", \n\ - #else \n\ - .{s}ChanStr_{i} = \"ADAT \",\n\ - #endif\n \ + print "#if (NUM_USB_CHAN_{c} > {i}-1) \n\ + .{s}ChanStr_{i} = \"\"\n\ + #if ({i} < I2S_CHANS_{adcdac}+1) \n\ + \"Analogue {i}\" \n\ #endif \n\ -#endif\n\n".format(iteration=i, i=i, c=chanString, p=portString, s=structureString) - + #if (({i} < SPDIF_{p}_INDEX+2+1) && ({i} > SPDIF_{p}_INDEX)) && defined(SPDIF_{p}) \n\ + #if ({i} < I2S_CHANS_{adcdac}+1) \n\ + \"/\" \n\ + #endif \n\ + #if({i} - SPDIF_TX_INDEX == 1) \n\ + \"SPDIF 1\"\n\ + #elif({i} - SPDIF_TX_INDEX == 2) \n\ + \"SPDIF 2\"\n\ + #endif\n\ + #endif\n\ + #if (({i} < ADAT_{p}_INDEX+8+1) && ({i} > ADAT_{p}_INDEX)) && defined(ADAT_{p}) \n\ + #if (({i} < SPDIF_{p}_INDEX+2+1) && ({i} > SPDIF_{p}_INDEX)) && defined(SPDIF_{p}) || ({i} < I2S_CHANS_{adcdac}+1) \n\ + \"/\" \n\ + #endif \n\ + #if({i} - ADAT_TX_INDEX == 1) \n\ + \"ADAT 1\"\n\ + #elif({i} - ADAT_TX_INDEX == 2) \n\ + \"ADAT 2\"\n\ + #elif({i} - ADAT_TX_INDEX == 3) \n\ + \"ADAT 3\"\n\ + #elif({i} - ADAT_TX_INDEX == 4) \n\ + \"ADAT 4\"\n\ + #elif({i} - ADAT_TX_INDEX == 5) \n\ + \"ADAT 5\"\n\ + #elif({i} - ADAT_TX_INDEX == 6) \n\ + \"ADAT 6\"\n\ + #elif({i} - ADAT_TX_INDEX == 7) \n\ + \"ADAT 7\"\n\ + #elif({i} - ADAT_TX_INDEX == 8) \n\ + \"ADAT 8\"\n\ + #endif\n \ + #endif\n\ + , \n#endif \n".format(i=i, c=chanString, p=portString, s=structureString, adcdac=adc_dac); return; -print "/* AUTOGENERATED using stringtable.py */ \n" +print "/* AUTOGENERATED using chanstringgen.py */ \n" print "/* Not very nice looking but the standard preprocessor is not very powerful\n and we save some memory over doing this all at runtime */" print "/* Output Strings */\n\n" -genstrings(32, "OUT", "TX", "output"); +genstrings(32, "OUT", "TX", "output", "DAC"); print "/* Input Strings */\n\n" -genstrings(32, "IN", "RX", "input"); +genstrings(32, "IN", "RX", "input", "ADC"); From bcf229fdbeead7ff5eacd73bc45d7f25db5d1543 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 23:41:46 +0000 Subject: [PATCH 012/137] Added generated chanstrings header --- module_usb_audio/endpoint0/chanstrings.h | 2490 ++++++++++++++++++++++ 1 file changed, 2490 insertions(+) create mode 100644 module_usb_audio/endpoint0/chanstrings.h diff --git a/module_usb_audio/endpoint0/chanstrings.h b/module_usb_audio/endpoint0/chanstrings.h new file mode 100644 index 00000000..1c2e35d6 --- /dev/null +++ b/module_usb_audio/endpoint0/chanstrings.h @@ -0,0 +1,2490 @@ +/* AUTOGENERATED using stringtable.py */ + +/* Not very nice looking but the standard preprocessor is not very powerful + and we save some memory over doing this all at runtime */ +/* Output Strings */ + + +#if (NUM_USB_CHAN_OUT > 1-1) + .outputChanStr_1 = "" + #if (1 < I2S_CHANS_DAC+1) + "Analogue 1" + #endif + #if ((1 < SPDIF_TX_INDEX+2+1) && (1 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (1 < I2S_CHANS_DAC+1) + "/" + #endif + #if(1 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(1 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((1 < ADAT_TX_INDEX+8+1) && (1 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((1 < SPDIF_TX_INDEX+2+1) && (1 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (1 < I2S_CHANS_DAC+1) + "/" + #endif + #if(1 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(1 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(1 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(1 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(1 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(1 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(1 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(1 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 2-1) + .outputChanStr_2 = "" + #if (2 < I2S_CHANS_DAC+1) + "Analogue 2" + #endif + #if ((2 < SPDIF_TX_INDEX+2+1) && (2 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (2 < I2S_CHANS_DAC+1) + "/" + #endif + #if(2 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(2 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((2 < ADAT_TX_INDEX+8+1) && (2 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((2 < SPDIF_TX_INDEX+2+1) && (2 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (2 < I2S_CHANS_DAC+1) + "/" + #endif + #if(2 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(2 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(2 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(2 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(2 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(2 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(2 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(2 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 3-1) + .outputChanStr_3 = "" + #if (3 < I2S_CHANS_DAC+1) + "Analogue 3" + #endif + #if ((3 < SPDIF_TX_INDEX+2+1) && (3 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (3 < I2S_CHANS_DAC+1) + "/" + #endif + #if(3 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(3 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((3 < ADAT_TX_INDEX+8+1) && (3 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((3 < SPDIF_TX_INDEX+2+1) && (3 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (3 < I2S_CHANS_DAC+1) + "/" + #endif + #if(3 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(3 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(3 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(3 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(3 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(3 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(3 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(3 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 4-1) + .outputChanStr_4 = "" + #if (4 < I2S_CHANS_DAC+1) + "Analogue 4" + #endif + #if ((4 < SPDIF_TX_INDEX+2+1) && (4 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (4 < I2S_CHANS_DAC+1) + "/" + #endif + #if(4 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(4 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((4 < ADAT_TX_INDEX+8+1) && (4 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((4 < SPDIF_TX_INDEX+2+1) && (4 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (4 < I2S_CHANS_DAC+1) + "/" + #endif + #if(4 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(4 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(4 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(4 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(4 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(4 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(4 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(4 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 5-1) + .outputChanStr_5 = "" + #if (5 < I2S_CHANS_DAC+1) + "Analogue 5" + #endif + #if ((5 < SPDIF_TX_INDEX+2+1) && (5 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (5 < I2S_CHANS_DAC+1) + "/" + #endif + #if(5 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(5 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((5 < ADAT_TX_INDEX+8+1) && (5 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((5 < SPDIF_TX_INDEX+2+1) && (5 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (5 < I2S_CHANS_DAC+1) + "/" + #endif + #if(5 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(5 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(5 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(5 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(5 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(5 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(5 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(5 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 6-1) + .outputChanStr_6 = "" + #if (6 < I2S_CHANS_DAC+1) + "Analogue 6" + #endif + #if ((6 < SPDIF_TX_INDEX+2+1) && (6 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (6 < I2S_CHANS_DAC+1) + "/" + #endif + #if(6 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(6 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((6 < ADAT_TX_INDEX+8+1) && (6 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((6 < SPDIF_TX_INDEX+2+1) && (6 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (6 < I2S_CHANS_DAC+1) + "/" + #endif + #if(6 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(6 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(6 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(6 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(6 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(6 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(6 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(6 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 7-1) + .outputChanStr_7 = "" + #if (7 < I2S_CHANS_DAC+1) + "Analogue 7" + #endif + #if ((7 < SPDIF_TX_INDEX+2+1) && (7 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (7 < I2S_CHANS_DAC+1) + "/" + #endif + #if(7 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(7 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((7 < ADAT_TX_INDEX+8+1) && (7 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((7 < SPDIF_TX_INDEX+2+1) && (7 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (7 < I2S_CHANS_DAC+1) + "/" + #endif + #if(7 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(7 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(7 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(7 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(7 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(7 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(7 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(7 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 8-1) + .outputChanStr_8 = "" + #if (8 < I2S_CHANS_DAC+1) + "Analogue 8" + #endif + #if ((8 < SPDIF_TX_INDEX+2+1) && (8 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (8 < I2S_CHANS_DAC+1) + "/" + #endif + #if(8 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(8 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((8 < ADAT_TX_INDEX+8+1) && (8 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((8 < SPDIF_TX_INDEX+2+1) && (8 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (8 < I2S_CHANS_DAC+1) + "/" + #endif + #if(8 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(8 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(8 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(8 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(8 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(8 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(8 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(8 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 9-1) + .outputChanStr_9 = "" + #if (9 < I2S_CHANS_DAC+1) + "Analogue 9" + #endif + #if ((9 < SPDIF_TX_INDEX+2+1) && (9 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (9 < I2S_CHANS_DAC+1) + "/" + #endif + #if(9 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(9 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((9 < ADAT_TX_INDEX+8+1) && (9 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((9 < SPDIF_TX_INDEX+2+1) && (9 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (9 < I2S_CHANS_DAC+1) + "/" + #endif + #if(9 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(9 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(9 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(9 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(9 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(9 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(9 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(9 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 10-1) + .outputChanStr_10 = "" + #if (10 < I2S_CHANS_DAC+1) + "Analogue 10" + #endif + #if ((10 < SPDIF_TX_INDEX+2+1) && (10 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (10 < I2S_CHANS_DAC+1) + "/" + #endif + #if(10 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(10 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((10 < ADAT_TX_INDEX+8+1) && (10 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((10 < SPDIF_TX_INDEX+2+1) && (10 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (10 < I2S_CHANS_DAC+1) + "/" + #endif + #if(10 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(10 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(10 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(10 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(10 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(10 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(10 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(10 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 11-1) + .outputChanStr_11 = "" + #if (11 < I2S_CHANS_DAC+1) + "Analogue 11" + #endif + #if ((11 < SPDIF_TX_INDEX+2+1) && (11 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (11 < I2S_CHANS_DAC+1) + "/" + #endif + #if(11 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(11 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((11 < ADAT_TX_INDEX+8+1) && (11 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((11 < SPDIF_TX_INDEX+2+1) && (11 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (11 < I2S_CHANS_DAC+1) + "/" + #endif + #if(11 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(11 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(11 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(11 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(11 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(11 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(11 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(11 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 12-1) + .outputChanStr_12 = "" + #if (12 < I2S_CHANS_DAC+1) + "Analogue 12" + #endif + #if ((12 < SPDIF_TX_INDEX+2+1) && (12 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (12 < I2S_CHANS_DAC+1) + "/" + #endif + #if(12 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(12 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((12 < ADAT_TX_INDEX+8+1) && (12 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((12 < SPDIF_TX_INDEX+2+1) && (12 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (12 < I2S_CHANS_DAC+1) + "/" + #endif + #if(12 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(12 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(12 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(12 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(12 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(12 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(12 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(12 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 13-1) + .outputChanStr_13 = "" + #if (13 < I2S_CHANS_DAC+1) + "Analogue 13" + #endif + #if ((13 < SPDIF_TX_INDEX+2+1) && (13 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (13 < I2S_CHANS_DAC+1) + "/" + #endif + #if(13 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(13 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((13 < ADAT_TX_INDEX+8+1) && (13 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((13 < SPDIF_TX_INDEX+2+1) && (13 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (13 < I2S_CHANS_DAC+1) + "/" + #endif + #if(13 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(13 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(13 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(13 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(13 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(13 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(13 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(13 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 14-1) + .outputChanStr_14 = "" + #if (14 < I2S_CHANS_DAC+1) + "Analogue 14" + #endif + #if ((14 < SPDIF_TX_INDEX+2+1) && (14 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (14 < I2S_CHANS_DAC+1) + "/" + #endif + #if(14 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(14 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((14 < ADAT_TX_INDEX+8+1) && (14 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((14 < SPDIF_TX_INDEX+2+1) && (14 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (14 < I2S_CHANS_DAC+1) + "/" + #endif + #if(14 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(14 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(14 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(14 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(14 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(14 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(14 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(14 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 15-1) + .outputChanStr_15 = "" + #if (15 < I2S_CHANS_DAC+1) + "Analogue 15" + #endif + #if ((15 < SPDIF_TX_INDEX+2+1) && (15 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (15 < I2S_CHANS_DAC+1) + "/" + #endif + #if(15 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(15 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((15 < ADAT_TX_INDEX+8+1) && (15 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((15 < SPDIF_TX_INDEX+2+1) && (15 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (15 < I2S_CHANS_DAC+1) + "/" + #endif + #if(15 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(15 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(15 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(15 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(15 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(15 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(15 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(15 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 16-1) + .outputChanStr_16 = "" + #if (16 < I2S_CHANS_DAC+1) + "Analogue 16" + #endif + #if ((16 < SPDIF_TX_INDEX+2+1) && (16 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (16 < I2S_CHANS_DAC+1) + "/" + #endif + #if(16 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(16 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((16 < ADAT_TX_INDEX+8+1) && (16 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((16 < SPDIF_TX_INDEX+2+1) && (16 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (16 < I2S_CHANS_DAC+1) + "/" + #endif + #if(16 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(16 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(16 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(16 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(16 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(16 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(16 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(16 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 17-1) + .outputChanStr_17 = "" + #if (17 < I2S_CHANS_DAC+1) + "Analogue 17" + #endif + #if ((17 < SPDIF_TX_INDEX+2+1) && (17 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (17 < I2S_CHANS_DAC+1) + "/" + #endif + #if(17 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(17 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((17 < ADAT_TX_INDEX+8+1) && (17 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((17 < SPDIF_TX_INDEX+2+1) && (17 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (17 < I2S_CHANS_DAC+1) + "/" + #endif + #if(17 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(17 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(17 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(17 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(17 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(17 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(17 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(17 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 18-1) + .outputChanStr_18 = "" + #if (18 < I2S_CHANS_DAC+1) + "Analogue 18" + #endif + #if ((18 < SPDIF_TX_INDEX+2+1) && (18 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (18 < I2S_CHANS_DAC+1) + "/" + #endif + #if(18 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(18 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((18 < ADAT_TX_INDEX+8+1) && (18 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((18 < SPDIF_TX_INDEX+2+1) && (18 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (18 < I2S_CHANS_DAC+1) + "/" + #endif + #if(18 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(18 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(18 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(18 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(18 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(18 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(18 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(18 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 19-1) + .outputChanStr_19 = "" + #if (19 < I2S_CHANS_DAC+1) + "Analogue 19" + #endif + #if ((19 < SPDIF_TX_INDEX+2+1) && (19 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (19 < I2S_CHANS_DAC+1) + "/" + #endif + #if(19 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(19 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((19 < ADAT_TX_INDEX+8+1) && (19 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((19 < SPDIF_TX_INDEX+2+1) && (19 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (19 < I2S_CHANS_DAC+1) + "/" + #endif + #if(19 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(19 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(19 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(19 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(19 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(19 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(19 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(19 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 20-1) + .outputChanStr_20 = "" + #if (20 < I2S_CHANS_DAC+1) + "Analogue 20" + #endif + #if ((20 < SPDIF_TX_INDEX+2+1) && (20 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (20 < I2S_CHANS_DAC+1) + "/" + #endif + #if(20 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(20 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((20 < ADAT_TX_INDEX+8+1) && (20 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((20 < SPDIF_TX_INDEX+2+1) && (20 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (20 < I2S_CHANS_DAC+1) + "/" + #endif + #if(20 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(20 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(20 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(20 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(20 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(20 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(20 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(20 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 21-1) + .outputChanStr_21 = "" + #if (21 < I2S_CHANS_DAC+1) + "Analogue 21" + #endif + #if ((21 < SPDIF_TX_INDEX+2+1) && (21 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (21 < I2S_CHANS_DAC+1) + "/" + #endif + #if(21 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(21 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((21 < ADAT_TX_INDEX+8+1) && (21 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((21 < SPDIF_TX_INDEX+2+1) && (21 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (21 < I2S_CHANS_DAC+1) + "/" + #endif + #if(21 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(21 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(21 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(21 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(21 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(21 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(21 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(21 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 22-1) + .outputChanStr_22 = "" + #if (22 < I2S_CHANS_DAC+1) + "Analogue 22" + #endif + #if ((22 < SPDIF_TX_INDEX+2+1) && (22 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (22 < I2S_CHANS_DAC+1) + "/" + #endif + #if(22 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(22 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((22 < ADAT_TX_INDEX+8+1) && (22 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((22 < SPDIF_TX_INDEX+2+1) && (22 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (22 < I2S_CHANS_DAC+1) + "/" + #endif + #if(22 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(22 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(22 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(22 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(22 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(22 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(22 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(22 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 23-1) + .outputChanStr_23 = "" + #if (23 < I2S_CHANS_DAC+1) + "Analogue 23" + #endif + #if ((23 < SPDIF_TX_INDEX+2+1) && (23 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (23 < I2S_CHANS_DAC+1) + "/" + #endif + #if(23 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(23 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((23 < ADAT_TX_INDEX+8+1) && (23 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((23 < SPDIF_TX_INDEX+2+1) && (23 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (23 < I2S_CHANS_DAC+1) + "/" + #endif + #if(23 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(23 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(23 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(23 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(23 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(23 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(23 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(23 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 24-1) + .outputChanStr_24 = "" + #if (24 < I2S_CHANS_DAC+1) + "Analogue 24" + #endif + #if ((24 < SPDIF_TX_INDEX+2+1) && (24 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (24 < I2S_CHANS_DAC+1) + "/" + #endif + #if(24 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(24 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((24 < ADAT_TX_INDEX+8+1) && (24 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((24 < SPDIF_TX_INDEX+2+1) && (24 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (24 < I2S_CHANS_DAC+1) + "/" + #endif + #if(24 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(24 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(24 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(24 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(24 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(24 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(24 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(24 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 25-1) + .outputChanStr_25 = "" + #if (25 < I2S_CHANS_DAC+1) + "Analogue 25" + #endif + #if ((25 < SPDIF_TX_INDEX+2+1) && (25 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (25 < I2S_CHANS_DAC+1) + "/" + #endif + #if(25 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(25 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((25 < ADAT_TX_INDEX+8+1) && (25 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((25 < SPDIF_TX_INDEX+2+1) && (25 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (25 < I2S_CHANS_DAC+1) + "/" + #endif + #if(25 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(25 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(25 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(25 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(25 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(25 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(25 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(25 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 26-1) + .outputChanStr_26 = "" + #if (26 < I2S_CHANS_DAC+1) + "Analogue 26" + #endif + #if ((26 < SPDIF_TX_INDEX+2+1) && (26 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (26 < I2S_CHANS_DAC+1) + "/" + #endif + #if(26 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(26 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((26 < ADAT_TX_INDEX+8+1) && (26 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((26 < SPDIF_TX_INDEX+2+1) && (26 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (26 < I2S_CHANS_DAC+1) + "/" + #endif + #if(26 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(26 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(26 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(26 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(26 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(26 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(26 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(26 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 27-1) + .outputChanStr_27 = "" + #if (27 < I2S_CHANS_DAC+1) + "Analogue 27" + #endif + #if ((27 < SPDIF_TX_INDEX+2+1) && (27 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (27 < I2S_CHANS_DAC+1) + "/" + #endif + #if(27 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(27 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((27 < ADAT_TX_INDEX+8+1) && (27 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((27 < SPDIF_TX_INDEX+2+1) && (27 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (27 < I2S_CHANS_DAC+1) + "/" + #endif + #if(27 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(27 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(27 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(27 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(27 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(27 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(27 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(27 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 28-1) + .outputChanStr_28 = "" + #if (28 < I2S_CHANS_DAC+1) + "Analogue 28" + #endif + #if ((28 < SPDIF_TX_INDEX+2+1) && (28 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (28 < I2S_CHANS_DAC+1) + "/" + #endif + #if(28 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(28 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((28 < ADAT_TX_INDEX+8+1) && (28 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((28 < SPDIF_TX_INDEX+2+1) && (28 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (28 < I2S_CHANS_DAC+1) + "/" + #endif + #if(28 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(28 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(28 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(28 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(28 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(28 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(28 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(28 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 29-1) + .outputChanStr_29 = "" + #if (29 < I2S_CHANS_DAC+1) + "Analogue 29" + #endif + #if ((29 < SPDIF_TX_INDEX+2+1) && (29 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (29 < I2S_CHANS_DAC+1) + "/" + #endif + #if(29 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(29 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((29 < ADAT_TX_INDEX+8+1) && (29 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((29 < SPDIF_TX_INDEX+2+1) && (29 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (29 < I2S_CHANS_DAC+1) + "/" + #endif + #if(29 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(29 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(29 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(29 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(29 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(29 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(29 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(29 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 30-1) + .outputChanStr_30 = "" + #if (30 < I2S_CHANS_DAC+1) + "Analogue 30" + #endif + #if ((30 < SPDIF_TX_INDEX+2+1) && (30 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (30 < I2S_CHANS_DAC+1) + "/" + #endif + #if(30 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(30 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((30 < ADAT_TX_INDEX+8+1) && (30 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((30 < SPDIF_TX_INDEX+2+1) && (30 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (30 < I2S_CHANS_DAC+1) + "/" + #endif + #if(30 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(30 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(30 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(30 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(30 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(30 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(30 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(30 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_OUT > 31-1) + .outputChanStr_31 = "" + #if (31 < I2S_CHANS_DAC+1) + "Analogue 31" + #endif + #if ((31 < SPDIF_TX_INDEX+2+1) && (31 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) + #if (31 < I2S_CHANS_DAC+1) + "/" + #endif + #if(31 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(31 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((31 < ADAT_TX_INDEX+8+1) && (31 > ADAT_TX_INDEX)) && defined(ADAT_TX) + #if ((31 < SPDIF_TX_INDEX+2+1) && (31 > SPDIF_TX_INDEX)) && defined(SPDIF_TX) || (31 < I2S_CHANS_DAC+1) + "/" + #endif + #if(31 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(31 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(31 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(31 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(31 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(31 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(31 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(31 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +/* Input Strings */ + + +#if (NUM_USB_CHAN_IN > 1-1) + .inputChanStr_1 = "" + #if (1 < I2S_CHANS_ADC+1) + "Analogue 1" + #endif + #if ((1 < SPDIF_RX_INDEX+2+1) && (1 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (1 < I2S_CHANS_ADC+1) + "/" + #endif + #if(1 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(1 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((1 < ADAT_RX_INDEX+8+1) && (1 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((1 < SPDIF_RX_INDEX+2+1) && (1 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (1 < I2S_CHANS_ADC+1) + "/" + #endif + #if(1 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(1 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(1 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(1 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(1 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(1 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(1 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(1 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 2-1) + .inputChanStr_2 = "" + #if (2 < I2S_CHANS_ADC+1) + "Analogue 2" + #endif + #if ((2 < SPDIF_RX_INDEX+2+1) && (2 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (2 < I2S_CHANS_ADC+1) + "/" + #endif + #if(2 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(2 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((2 < ADAT_RX_INDEX+8+1) && (2 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((2 < SPDIF_RX_INDEX+2+1) && (2 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (2 < I2S_CHANS_ADC+1) + "/" + #endif + #if(2 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(2 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(2 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(2 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(2 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(2 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(2 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(2 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 3-1) + .inputChanStr_3 = "" + #if (3 < I2S_CHANS_ADC+1) + "Analogue 3" + #endif + #if ((3 < SPDIF_RX_INDEX+2+1) && (3 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (3 < I2S_CHANS_ADC+1) + "/" + #endif + #if(3 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(3 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((3 < ADAT_RX_INDEX+8+1) && (3 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((3 < SPDIF_RX_INDEX+2+1) && (3 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (3 < I2S_CHANS_ADC+1) + "/" + #endif + #if(3 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(3 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(3 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(3 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(3 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(3 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(3 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(3 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 4-1) + .inputChanStr_4 = "" + #if (4 < I2S_CHANS_ADC+1) + "Analogue 4" + #endif + #if ((4 < SPDIF_RX_INDEX+2+1) && (4 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (4 < I2S_CHANS_ADC+1) + "/" + #endif + #if(4 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(4 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((4 < ADAT_RX_INDEX+8+1) && (4 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((4 < SPDIF_RX_INDEX+2+1) && (4 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (4 < I2S_CHANS_ADC+1) + "/" + #endif + #if(4 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(4 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(4 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(4 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(4 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(4 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(4 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(4 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 5-1) + .inputChanStr_5 = "" + #if (5 < I2S_CHANS_ADC+1) + "Analogue 5" + #endif + #if ((5 < SPDIF_RX_INDEX+2+1) && (5 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (5 < I2S_CHANS_ADC+1) + "/" + #endif + #if(5 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(5 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((5 < ADAT_RX_INDEX+8+1) && (5 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((5 < SPDIF_RX_INDEX+2+1) && (5 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (5 < I2S_CHANS_ADC+1) + "/" + #endif + #if(5 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(5 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(5 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(5 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(5 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(5 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(5 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(5 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 6-1) + .inputChanStr_6 = "" + #if (6 < I2S_CHANS_ADC+1) + "Analogue 6" + #endif + #if ((6 < SPDIF_RX_INDEX+2+1) && (6 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (6 < I2S_CHANS_ADC+1) + "/" + #endif + #if(6 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(6 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((6 < ADAT_RX_INDEX+8+1) && (6 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((6 < SPDIF_RX_INDEX+2+1) && (6 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (6 < I2S_CHANS_ADC+1) + "/" + #endif + #if(6 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(6 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(6 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(6 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(6 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(6 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(6 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(6 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 7-1) + .inputChanStr_7 = "" + #if (7 < I2S_CHANS_ADC+1) + "Analogue 7" + #endif + #if ((7 < SPDIF_RX_INDEX+2+1) && (7 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (7 < I2S_CHANS_ADC+1) + "/" + #endif + #if(7 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(7 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((7 < ADAT_RX_INDEX+8+1) && (7 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((7 < SPDIF_RX_INDEX+2+1) && (7 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (7 < I2S_CHANS_ADC+1) + "/" + #endif + #if(7 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(7 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(7 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(7 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(7 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(7 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(7 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(7 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 8-1) + .inputChanStr_8 = "" + #if (8 < I2S_CHANS_ADC+1) + "Analogue 8" + #endif + #if ((8 < SPDIF_RX_INDEX+2+1) && (8 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (8 < I2S_CHANS_ADC+1) + "/" + #endif + #if(8 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(8 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((8 < ADAT_RX_INDEX+8+1) && (8 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((8 < SPDIF_RX_INDEX+2+1) && (8 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (8 < I2S_CHANS_ADC+1) + "/" + #endif + #if(8 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(8 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(8 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(8 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(8 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(8 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(8 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(8 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 9-1) + .inputChanStr_9 = "" + #if (9 < I2S_CHANS_ADC+1) + "Analogue 9" + #endif + #if ((9 < SPDIF_RX_INDEX+2+1) && (9 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (9 < I2S_CHANS_ADC+1) + "/" + #endif + #if(9 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(9 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((9 < ADAT_RX_INDEX+8+1) && (9 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((9 < SPDIF_RX_INDEX+2+1) && (9 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (9 < I2S_CHANS_ADC+1) + "/" + #endif + #if(9 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(9 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(9 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(9 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(9 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(9 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(9 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(9 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 10-1) + .inputChanStr_10 = "" + #if (10 < I2S_CHANS_ADC+1) + "Analogue 10" + #endif + #if ((10 < SPDIF_RX_INDEX+2+1) && (10 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (10 < I2S_CHANS_ADC+1) + "/" + #endif + #if(10 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(10 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((10 < ADAT_RX_INDEX+8+1) && (10 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((10 < SPDIF_RX_INDEX+2+1) && (10 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (10 < I2S_CHANS_ADC+1) + "/" + #endif + #if(10 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(10 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(10 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(10 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(10 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(10 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(10 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(10 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 11-1) + .inputChanStr_11 = "" + #if (11 < I2S_CHANS_ADC+1) + "Analogue 11" + #endif + #if ((11 < SPDIF_RX_INDEX+2+1) && (11 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (11 < I2S_CHANS_ADC+1) + "/" + #endif + #if(11 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(11 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((11 < ADAT_RX_INDEX+8+1) && (11 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((11 < SPDIF_RX_INDEX+2+1) && (11 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (11 < I2S_CHANS_ADC+1) + "/" + #endif + #if(11 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(11 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(11 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(11 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(11 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(11 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(11 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(11 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 12-1) + .inputChanStr_12 = "" + #if (12 < I2S_CHANS_ADC+1) + "Analogue 12" + #endif + #if ((12 < SPDIF_RX_INDEX+2+1) && (12 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (12 < I2S_CHANS_ADC+1) + "/" + #endif + #if(12 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(12 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((12 < ADAT_RX_INDEX+8+1) && (12 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((12 < SPDIF_RX_INDEX+2+1) && (12 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (12 < I2S_CHANS_ADC+1) + "/" + #endif + #if(12 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(12 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(12 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(12 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(12 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(12 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(12 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(12 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 13-1) + .inputChanStr_13 = "" + #if (13 < I2S_CHANS_ADC+1) + "Analogue 13" + #endif + #if ((13 < SPDIF_RX_INDEX+2+1) && (13 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (13 < I2S_CHANS_ADC+1) + "/" + #endif + #if(13 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(13 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((13 < ADAT_RX_INDEX+8+1) && (13 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((13 < SPDIF_RX_INDEX+2+1) && (13 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (13 < I2S_CHANS_ADC+1) + "/" + #endif + #if(13 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(13 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(13 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(13 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(13 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(13 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(13 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(13 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 14-1) + .inputChanStr_14 = "" + #if (14 < I2S_CHANS_ADC+1) + "Analogue 14" + #endif + #if ((14 < SPDIF_RX_INDEX+2+1) && (14 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (14 < I2S_CHANS_ADC+1) + "/" + #endif + #if(14 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(14 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((14 < ADAT_RX_INDEX+8+1) && (14 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((14 < SPDIF_RX_INDEX+2+1) && (14 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (14 < I2S_CHANS_ADC+1) + "/" + #endif + #if(14 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(14 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(14 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(14 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(14 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(14 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(14 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(14 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 15-1) + .inputChanStr_15 = "" + #if (15 < I2S_CHANS_ADC+1) + "Analogue 15" + #endif + #if ((15 < SPDIF_RX_INDEX+2+1) && (15 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (15 < I2S_CHANS_ADC+1) + "/" + #endif + #if(15 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(15 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((15 < ADAT_RX_INDEX+8+1) && (15 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((15 < SPDIF_RX_INDEX+2+1) && (15 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (15 < I2S_CHANS_ADC+1) + "/" + #endif + #if(15 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(15 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(15 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(15 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(15 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(15 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(15 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(15 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 16-1) + .inputChanStr_16 = "" + #if (16 < I2S_CHANS_ADC+1) + "Analogue 16" + #endif + #if ((16 < SPDIF_RX_INDEX+2+1) && (16 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (16 < I2S_CHANS_ADC+1) + "/" + #endif + #if(16 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(16 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((16 < ADAT_RX_INDEX+8+1) && (16 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((16 < SPDIF_RX_INDEX+2+1) && (16 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (16 < I2S_CHANS_ADC+1) + "/" + #endif + #if(16 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(16 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(16 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(16 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(16 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(16 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(16 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(16 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 17-1) + .inputChanStr_17 = "" + #if (17 < I2S_CHANS_ADC+1) + "Analogue 17" + #endif + #if ((17 < SPDIF_RX_INDEX+2+1) && (17 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (17 < I2S_CHANS_ADC+1) + "/" + #endif + #if(17 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(17 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((17 < ADAT_RX_INDEX+8+1) && (17 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((17 < SPDIF_RX_INDEX+2+1) && (17 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (17 < I2S_CHANS_ADC+1) + "/" + #endif + #if(17 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(17 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(17 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(17 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(17 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(17 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(17 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(17 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 18-1) + .inputChanStr_18 = "" + #if (18 < I2S_CHANS_ADC+1) + "Analogue 18" + #endif + #if ((18 < SPDIF_RX_INDEX+2+1) && (18 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (18 < I2S_CHANS_ADC+1) + "/" + #endif + #if(18 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(18 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((18 < ADAT_RX_INDEX+8+1) && (18 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((18 < SPDIF_RX_INDEX+2+1) && (18 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (18 < I2S_CHANS_ADC+1) + "/" + #endif + #if(18 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(18 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(18 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(18 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(18 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(18 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(18 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(18 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 19-1) + .inputChanStr_19 = "" + #if (19 < I2S_CHANS_ADC+1) + "Analogue 19" + #endif + #if ((19 < SPDIF_RX_INDEX+2+1) && (19 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (19 < I2S_CHANS_ADC+1) + "/" + #endif + #if(19 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(19 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((19 < ADAT_RX_INDEX+8+1) && (19 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((19 < SPDIF_RX_INDEX+2+1) && (19 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (19 < I2S_CHANS_ADC+1) + "/" + #endif + #if(19 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(19 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(19 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(19 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(19 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(19 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(19 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(19 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 20-1) + .inputChanStr_20 = "" + #if (20 < I2S_CHANS_ADC+1) + "Analogue 20" + #endif + #if ((20 < SPDIF_RX_INDEX+2+1) && (20 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (20 < I2S_CHANS_ADC+1) + "/" + #endif + #if(20 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(20 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((20 < ADAT_RX_INDEX+8+1) && (20 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((20 < SPDIF_RX_INDEX+2+1) && (20 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (20 < I2S_CHANS_ADC+1) + "/" + #endif + #if(20 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(20 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(20 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(20 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(20 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(20 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(20 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(20 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 21-1) + .inputChanStr_21 = "" + #if (21 < I2S_CHANS_ADC+1) + "Analogue 21" + #endif + #if ((21 < SPDIF_RX_INDEX+2+1) && (21 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (21 < I2S_CHANS_ADC+1) + "/" + #endif + #if(21 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(21 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((21 < ADAT_RX_INDEX+8+1) && (21 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((21 < SPDIF_RX_INDEX+2+1) && (21 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (21 < I2S_CHANS_ADC+1) + "/" + #endif + #if(21 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(21 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(21 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(21 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(21 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(21 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(21 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(21 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 22-1) + .inputChanStr_22 = "" + #if (22 < I2S_CHANS_ADC+1) + "Analogue 22" + #endif + #if ((22 < SPDIF_RX_INDEX+2+1) && (22 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (22 < I2S_CHANS_ADC+1) + "/" + #endif + #if(22 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(22 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((22 < ADAT_RX_INDEX+8+1) && (22 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((22 < SPDIF_RX_INDEX+2+1) && (22 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (22 < I2S_CHANS_ADC+1) + "/" + #endif + #if(22 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(22 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(22 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(22 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(22 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(22 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(22 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(22 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 23-1) + .inputChanStr_23 = "" + #if (23 < I2S_CHANS_ADC+1) + "Analogue 23" + #endif + #if ((23 < SPDIF_RX_INDEX+2+1) && (23 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (23 < I2S_CHANS_ADC+1) + "/" + #endif + #if(23 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(23 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((23 < ADAT_RX_INDEX+8+1) && (23 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((23 < SPDIF_RX_INDEX+2+1) && (23 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (23 < I2S_CHANS_ADC+1) + "/" + #endif + #if(23 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(23 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(23 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(23 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(23 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(23 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(23 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(23 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 24-1) + .inputChanStr_24 = "" + #if (24 < I2S_CHANS_ADC+1) + "Analogue 24" + #endif + #if ((24 < SPDIF_RX_INDEX+2+1) && (24 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (24 < I2S_CHANS_ADC+1) + "/" + #endif + #if(24 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(24 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((24 < ADAT_RX_INDEX+8+1) && (24 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((24 < SPDIF_RX_INDEX+2+1) && (24 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (24 < I2S_CHANS_ADC+1) + "/" + #endif + #if(24 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(24 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(24 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(24 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(24 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(24 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(24 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(24 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 25-1) + .inputChanStr_25 = "" + #if (25 < I2S_CHANS_ADC+1) + "Analogue 25" + #endif + #if ((25 < SPDIF_RX_INDEX+2+1) && (25 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (25 < I2S_CHANS_ADC+1) + "/" + #endif + #if(25 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(25 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((25 < ADAT_RX_INDEX+8+1) && (25 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((25 < SPDIF_RX_INDEX+2+1) && (25 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (25 < I2S_CHANS_ADC+1) + "/" + #endif + #if(25 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(25 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(25 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(25 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(25 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(25 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(25 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(25 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 26-1) + .inputChanStr_26 = "" + #if (26 < I2S_CHANS_ADC+1) + "Analogue 26" + #endif + #if ((26 < SPDIF_RX_INDEX+2+1) && (26 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (26 < I2S_CHANS_ADC+1) + "/" + #endif + #if(26 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(26 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((26 < ADAT_RX_INDEX+8+1) && (26 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((26 < SPDIF_RX_INDEX+2+1) && (26 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (26 < I2S_CHANS_ADC+1) + "/" + #endif + #if(26 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(26 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(26 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(26 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(26 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(26 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(26 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(26 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 27-1) + .inputChanStr_27 = "" + #if (27 < I2S_CHANS_ADC+1) + "Analogue 27" + #endif + #if ((27 < SPDIF_RX_INDEX+2+1) && (27 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (27 < I2S_CHANS_ADC+1) + "/" + #endif + #if(27 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(27 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((27 < ADAT_RX_INDEX+8+1) && (27 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((27 < SPDIF_RX_INDEX+2+1) && (27 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (27 < I2S_CHANS_ADC+1) + "/" + #endif + #if(27 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(27 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(27 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(27 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(27 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(27 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(27 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(27 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 28-1) + .inputChanStr_28 = "" + #if (28 < I2S_CHANS_ADC+1) + "Analogue 28" + #endif + #if ((28 < SPDIF_RX_INDEX+2+1) && (28 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (28 < I2S_CHANS_ADC+1) + "/" + #endif + #if(28 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(28 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((28 < ADAT_RX_INDEX+8+1) && (28 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((28 < SPDIF_RX_INDEX+2+1) && (28 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (28 < I2S_CHANS_ADC+1) + "/" + #endif + #if(28 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(28 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(28 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(28 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(28 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(28 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(28 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(28 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 29-1) + .inputChanStr_29 = "" + #if (29 < I2S_CHANS_ADC+1) + "Analogue 29" + #endif + #if ((29 < SPDIF_RX_INDEX+2+1) && (29 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (29 < I2S_CHANS_ADC+1) + "/" + #endif + #if(29 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(29 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((29 < ADAT_RX_INDEX+8+1) && (29 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((29 < SPDIF_RX_INDEX+2+1) && (29 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (29 < I2S_CHANS_ADC+1) + "/" + #endif + #if(29 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(29 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(29 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(29 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(29 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(29 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(29 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(29 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 30-1) + .inputChanStr_30 = "" + #if (30 < I2S_CHANS_ADC+1) + "Analogue 30" + #endif + #if ((30 < SPDIF_RX_INDEX+2+1) && (30 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (30 < I2S_CHANS_ADC+1) + "/" + #endif + #if(30 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(30 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((30 < ADAT_RX_INDEX+8+1) && (30 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((30 < SPDIF_RX_INDEX+2+1) && (30 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (30 < I2S_CHANS_ADC+1) + "/" + #endif + #if(30 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(30 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(30 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(30 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(30 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(30 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(30 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(30 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + +#if (NUM_USB_CHAN_IN > 31-1) + .inputChanStr_31 = "" + #if (31 < I2S_CHANS_ADC+1) + "Analogue 31" + #endif + #if ((31 < SPDIF_RX_INDEX+2+1) && (31 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) + #if (31 < I2S_CHANS_ADC+1) + "/" + #endif + #if(31 - SPDIF_TX_INDEX == 1) + "SPDIF 1" + #elif(31 - SPDIF_TX_INDEX == 2) + "SPDIF 2" + #endif + #endif + #if ((31 < ADAT_RX_INDEX+8+1) && (31 > ADAT_RX_INDEX)) && defined(ADAT_RX) + #if ((31 < SPDIF_RX_INDEX+2+1) && (31 > SPDIF_RX_INDEX)) && defined(SPDIF_RX) || (31 < I2S_CHANS_ADC+1) + "/" + #endif + #if(31 - ADAT_TX_INDEX == 1) + "ADAT 1" + #elif(31 - ADAT_TX_INDEX == 2) + "ADAT 2" + #elif(31 - ADAT_TX_INDEX == 3) + "ADAT 3" + #elif(31 - ADAT_TX_INDEX == 4) + "ADAT 4" + #elif(31 - ADAT_TX_INDEX == 5) + "ADAT 5" + #elif(31 - ADAT_TX_INDEX == 6) + "ADAT 6" + #elif(31 - ADAT_TX_INDEX == 7) + "ADAT 7" + #elif(31 - ADAT_TX_INDEX == 8) + "ADAT 8" + #endif + #endif + , +#endif + From 02fe59bc84d2ffb3a4a9708910c68b8fea5c4ae9 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 23:42:25 +0000 Subject: [PATCH 013/137] Created new SPDIF_TX define (based on old SPDIF define). Helps with auto generating channel strings. --- module_usb_audio/devicedefines.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h index 3f8f7e82..39d247ef 100644 --- a/module_usb_audio/devicedefines.h +++ b/module_usb_audio/devicedefines.h @@ -231,6 +231,10 @@ #undef SPDIF #endif +#ifdef SPDIF +#define SPDIF_TX 1 +#endif + /** * @brief Defines which output channels (stereo) should be output on S/PDIF. Note, Output channels indexed from 0. * From ab392eb3733fa8d729e723197f2adaa08494927b Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Mon, 2 Mar 2015 23:43:14 +0000 Subject: [PATCH 014/137] Channel strings in string table now come from generated header. --- module_usb_audio/endpoint0/descriptors.h | 1139 +--------------------- 1 file changed, 2 insertions(+), 1137 deletions(-) diff --git a/module_usb_audio/endpoint0/descriptors.h b/module_usb_audio/endpoint0/descriptors.h index 0ffe3c9b..67d71d0b 100644 --- a/module_usb_audio/endpoint0/descriptors.h +++ b/module_usb_audio/endpoint0/descriptors.h @@ -325,1146 +325,11 @@ StringDescTable_t g_strTable = .midiOutStr = APPEND_VENDOR_STR(MIDI Out), .midiInStr = APPEND_VENDOR_STR(MIDI In), #endif -#if (NUM_USB_CHAN_OUT > 0) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 0) - #if defined(SPDIF) && (SPDIF_TX_INDEX < I2S_CHANS_DAC) - /* I2S/SPDIF overlap */ - .outputChanStr_1 = "Analogue 1/SPDIF 1", - #else - .outputChanStr_1 = "S/PDIF 1", - #endif -#else - .outputChanStr_1 = "Analogue 1", -#endif -#endif -#if (NUM_USB_CHAN_OUT > 1) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 1) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_2 = "Analogue 2/SPDIF 1", - #else - .outputChanStr_2 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 0) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_2 = "Analogue 2/SPDIF 2", - #else - .outputChanStr_2 = "S/PDIF 2", - #endif -#else - .outputChanStr_2 = "Analogue 2", -#endif -#endif -#if (NUM_USB_CHAN_OUT > 2) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 2) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_3 = "Analogue 3/SPDIF 1", - #else - .outputChanStr_3 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 1) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_3 = "Analogue 3/SPDIF 2", - #else - .outputChanStr_3 = "S/PDIF 2", - #endif -#else - .outputChanStr_3 = "Analogue 3", - #endif -#endif -#if (NUM_USB_CHAN_OUT > 3) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 3) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_4 = "Analogue 4/SPDIF 1", - #else - .outputChanStr_4 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 2) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_4 = "Analogue 4/SPDIF 2", - #else - .outputChanStr_4 = "S/PDIF 2", - #endif -#else - .outputChanStr_4 = "Analogue 4", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 4) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 4) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_5 = "Analogue 5/SPDIF 1", - #else - .outputChanStr_5 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 3) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_5 = "Analogue 5/SPDIF 2", - #else - .outputChanStr_5 = "S/PDIF 2", - #endif -#else - .outputChanStr_5 = "Analogue 5", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 5) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 5) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_6 = "Analogue 6/SPDIF 1", - #else - .outputChanStr_6 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 4) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_6 = "Analogue 6/SPDIF 2", - #else - .outputChanStr_6 = "S/PDIF 2", - #endif -#else - .outputChanStr_6 = "Analogue 6", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 6) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 6) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_7 = "Analogue 7/SPDIF 1", - #else - .outputChanStr_7 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 5) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_7 = "Analogue 7/SPDIF 2", - #else - .outputChanStr_7 = "S/PDIF 2", - #endif -#else - .outputChanStr_7 = "Analogue 7", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 7) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 7) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_8 = "Analogue 8/SPDIF 1", - #else - .outputChanStr_8 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 6) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_8 = "Analogue 8/SPDIF 2", - #else - .outputChanStr_8 = "S/PDIF 2", - #endif -#else - .outputChanStr_8 = "Analogue 8", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 8) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 8) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_9 = "Analogue 9/SPDIF 1", - #else - .outputChanStr_9 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 7) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_9 = "Analogue 9/SPDIF 2", - #else - .outputChanStr_9 = "S/PDIF 2", - #endif -#else - .outputChanStr_9 = "Analogue 9", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 9) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 9) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_10 = "Analogue 10/SPDIF 1", - #else - .outputChanStr_10 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 8) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_10 = "Analogue 10/SPDIF 2", - #else - .outputChanStr_10 = "S/PDIF 2", - #endif -#else - .outputChanStr_10 = "Analogue 10", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 10) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 10) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_11 = "Analogue 11/SPDIF 1", - #else - .outputChanStr_11 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 9) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_11 = "Analogue 11/SPDIF 2", - #else - .outputChanStr_11 = "S/PDIF 2", - #endif -#else - .outputChanStr_11 = "Analogue 11", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 11) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 11) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_12 = "Analogue 12/SPDIF 1", - #else - .outputChanStr_12 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 10) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_12 = "Analogue 12/SPDIF 2", - #else - .outputChanStr_12 = "S/PDIF 2", - #endif -#else - .outputChanStr_12 = "Analogue 12", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 12) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 12) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_13 = "Analogue 13/SPDIF 1", - #else - .outputChanStr_13 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 11) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_13 = "Analogue 13/SPDIF 2", - #else - .outputChanStr_13 = "S/PDIF 2", - #endif -#else - .outputChanStr_13 = "Analogue 13", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 13) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 13) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_14 = "Analogue 14/SPDIF 1", - #else - .outputChanStr_14 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 12) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_14 = "Analogue 14/SPDIF 2", - #else - .outputChanStr_14 = "S/PDIF 2", - #endif -#else - .outputChanStr_14 = "Analogue 14", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 14) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 14) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_15 = "Analogue 15/SPDIF 1", - #else - .outputChanStr_15 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 13) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_15 = "Analogue 15/SPDIF 2", - #else - .outputChanStr_15 = "S/PDIF 2", - #endif -#else - .outputChanStr_15 = "Analogue 15", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 15) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 15) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_16 = "Analogue 16/SPDIF 1", - #else - .outputChanStr_16 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 14) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_16 = "Analogue 16/SPDIF 2", - #else - .outputChanStr_16 = "S/PDIF 2", - #endif -#else - .outputChanStr_16 = "Analogue 16", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 16) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 16) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_17 = "Analogue 17/SPDIF 1", - #else - .outputChanStr_17 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 15) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_17 = "Analogue 17/SPDIF 2", - #else - .outputChanStr_17 = "S/PDIF 2", - #endif -#else - .outputChanStr_17 = "Analogue 17", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 17) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 17) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_18 = "Analogue 18/SPDIF 1", - #else - .outputChanStr_18 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 16) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_18 = "Analogue 18/SPDIF 2", - #else - .outputChanStr_18 = "S/PDIF 2", - #endif -#else - .outputChanStr_18 = "Analogue 18", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 18) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 18) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_19 = "Analogue 19/SPDIF 1", - #else - .outputChanStr_19 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 17) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_19 = "Analogue 19/SPDIF 2", - #else - .outputChanStr_19 = "S/PDIF 2", - #endif -#else - .outputChanStr_19 = "Analogue 19", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 19) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 19) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_20 = "Analogue 20/SPDIF 1", - #else - .outputChanStr_20 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 18) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_20 = "Analogue 20/SPDIF 2", - #else - .outputChanStr_20 = "S/PDIF 2", - #endif -#else - .outputChanStr_20 = "Analogue 20", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 20) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 20) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_21 = "Analogue 21/SPDIF 1", - #else - .outputChanStr_21 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 19) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_21 = "Analogue 21/SPDIF 2", - #else - .outputChanStr_21 = "S/PDIF 2", - #endif -#else - .outputChanStr_21 = "Analogue 21", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 21) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 21) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_22 = "Analogue 22/SPDIF 1", - #else - .outputChanStr_22 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 20) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_22 = "Analogue 22/SPDIF 2", - #else - .outputChanStr_22 = "S/PDIF 2", - #endif -#else - .outputChanStr_22 = "Analogue 22", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 22) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 22) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_23 = "Analogue 23/SPDIF 1", - #else - .outputChanStr_23 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 21) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_23 = "Analogue 23/SPDIF 2", - #else - .outputChanStr_23 = "S/PDIF 2", - #endif -#else - .outputChanStr_23 = "Analogue 23", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 23) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 23) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_24 = "Analogue 24/SPDIF 1", - #else - .outputChanStr_24 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 22) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_24 = "Analogue 24/SPDIF 2", - #else - .outputChanStr_24 = "S/PDIF 2", - #endif -#else - .outputChanStr_24 = "Analogue 24", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 24) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 24) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_25 = "Analogue 25/SPDIF 1", - #else - .outputChanStr_25 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 23) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_25 = "Analogue 25/SPDIF 2", - #else - .outputChanStr_25 = "S/PDIF 2", - #endif -#else - .outputChanStr_25 = "Analogue 25", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 25) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 25) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_26 = "Analogue 26/SPDIF 1", - #else - .outputChanStr_26 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 24) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_26 = "Analogue 26/SPDIF 2", - #else - .outputChanStr_26 = "S/PDIF 2", - #endif -#else - .outputChanStr_26 = "Analogue 26", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 26) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 26) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_27 = "Analogue 27/SPDIF 1", - #else - .outputChanStr_27 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 25) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_27 = "Analogue 27/SPDIF 2", - #else - .outputChanStr_27 = "S/PDIF 2", - #endif -#else - .outputChanStr_27 = "Analogue 27", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 27) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 28) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_28 = "Analogue 28/SPDIF 1", - #else - .outputChanStr_28 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 27) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_28 = "Analogue 28/SPDIF 2", - #else - .outputChanStr_28 = "S/PDIF 2", - #endif -#else - .outputChanStr_28 = "Analogue 28", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 28) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 29) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_29 = "Analogue 29/SPDIF 1", - #else - .outputChanStr_29 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 28) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_29 = "Analogue 29/SPDIF 2", - #else - .outputChanStr_29 = "S/PDIF 2", - #endif -#else - .outputChanStr_29 = "Analogue 29", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 29) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 30) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_30 = "Analogue 30/SPDIF 1", - #else - .outputChanStr_30 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 29) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_30 = "Analogue 30/SPDIF 2", - #else - .outputChanStr_30 = "S/PDIF 2", - #endif -#else - .outputChanStr_30 = "Analogue 30", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 30) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 31) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_31 = "Analogue 31/SPDIF 1", - #else - .outputChanStr_31 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 30) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_31 = "Analogue 31/SPDIF 2", - #else - .outputChanStr_31 = "S/PDIF 2", - #endif -#else - .outputChanStr_31 = "Analogue 31", -#endif -#endif - -#if (NUM_USB_CHAN_OUT > 31) -#if defined(SPDIF) && (SPDIF_TX_INDEX == 32) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_32 = "Analogue 32/SPDIF 1", - #else - .outputChanStr_32 = "S/PDIF 1", - #endif -#elif defined(SPDIF) && (SPDIF_TX_INDEX == 32) - #if(SPDIF_TX_INDEX < I2S_CHANS_DAC) - .outputChanStr_32 = "Analogue 32/SPDIF 2", - #else - .outputChanStr_32 = "S/PDIF 2", - #endif -#else - .outputChanStr_32 = "Analogue 32", -#endif -#endif + #include "chanstrings.h" #if (NUM_USB_CHAN_OUT > 32) -#error NUM_USB_CHAN > 32 -#endif - -/*** INPUT CHANNEL STRINGS ***/ - -#if (NUM_USB_CHAN_IN > 0) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 0) - #if defined(SPDIF_RX) && (SPDIF_RX_INDEX < I2S_CHANS_ADC) - /* I2S/SPDIF overlap */ - .inputChanStr_1 = "Analogue 1/SPDIF 1", - #else - .inputChanStr_1 = "S/PDIF 1", - #endif -#else - .inputChanStr_1 = "Analogue 1", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 1) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 1) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_2 = "Analogue 2/SPDIF 1", - #else - .inputChanStr_2 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 0) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_2 = "Analogue 2/SPDIF 2", - #else - .inputChanStr_2 = "S/PDIF 2", - #endif -#else - .inputChanStr_2 = "Analogue 2", -#endif -#endif -#if (NUM_USB_CHAN_IN > 2) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 2) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_3 = "Analogue 3/SPDIF 1", - #else - .inputChanStr_3 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 1) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_3 = "Analogue 3/SPDIF 2", - #else - .inputChanStr_3 = "S/PDIF 2", - #endif -#else - .inputChanStr_3 = "Analogue 3", - #endif -#endif -#if (NUM_USB_CHAN_IN > 3) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 3) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_4 = "Analogue 4/SPDIF 1", - #else - .inputChanStr_4 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 2) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_4 = "Analogue 4/SPDIF 2", - #else - .inputChanStr_4 = "S/PDIF 2", - #endif -#else - .inputChanStr_4 = "Analogue 4", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 4) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 4) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_5 = "Analogue 5/SPDIF 1", - #else - .inputChanStr_5 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 3) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_5 = "Analogue 5/SPDIF 2", - #else - .inputChanStr_5 = "S/PDIF 2", - #endif -#else - .inputChanStr_5 = "Analogue 5", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 5) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 5) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_6 = "Analogue 6/SPDIF 1", - #else - .inputChanStr_6 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 4) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_6 = "Analogue 6/SPDIF 2", - #else - .inputChanStr_6 = "S/PDIF 2", - #endif -#else - .inputChanStr_6 = "Analogue 6", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 6) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 6) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_7 = "Analogue 7/SPDIF 1", - #else - .inputChanStr_7 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 5) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_7 = "Analogue 7/SPDIF 2", - #else - .inputChanStr_7 = "S/PDIF 2", - #endif -#else - .inputChanStr_7 = "Analogue 7", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 7) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 7) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_8 = "Analogue 8/SPDIF 1", - #else - .inputChanStr_8 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 6) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_8 = "Analogue 8/SPDIF 2", - #else - .inputChanStr_8 = "S/PDIF 2", - #endif -#else - .inputChanStr_8 = "Analogue 8", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 8) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 8) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_9 = "Analogue 9/SPDIF 1", - #else - .inputChanStr_9 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 7) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_9 = "Analogue 9/SPDIF 2", - #else - .inputChanStr_9 = "S/PDIF 2", - #endif -#else - .inputChanStr_9 = "Analogue 9", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 9) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 9) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_10 = "Analogue 10/SPDIF 1", - #else - .inputChanStr_10 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 8) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_10 = "Analogue 10/SPDIF 2", - #else - .inputChanStr_10 = "S/PDIF 2", - #endif -#else - .inputChanStr_10 = "Analogue 10", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 10) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 10) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_11 = "Analogue 11/SPDIF 1", - #else - .inputChanStr_11 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 9) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_11 = "Analogue 11/SPDIF 2", - #else - .inputChanStr_11 = "S/PDIF 2", - #endif -#else - .inputChanStr_11 = "Analogue 11", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 11) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 11) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_12 = "Analogue 12/SPDIF 1", - #else - .inputChanStr_12 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 10) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_12 = "Analogue 12/SPDIF 2", - #else - .inputChanStr_12 = "S/PDIF 2", - #endif -#else - .inputChanStr_12 = "Analogue 12", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 12) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 12) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_13 = "Analogue 13/SPDIF 1", - #else - .inputChanStr_13 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 11) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_13 = "Analogue 13/SPDIF 2", - #else - .inputChanStr_13 = "S/PDIF 2", - #endif -#else - .inputChanStr_13 = "Analogue 13", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 13) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 13) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_14 = "Analogue 14/SPDIF 1", - #else - .inputChanStr_14 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 12) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_14 = "Analogue 14/SPDIF 2", - #else - .inputChanStr_14 = "S/PDIF 2", - #endif -#else - .inputChanStr_14 = "Analogue 14", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 14) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 14) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_15 = "Analogue 15/SPDIF 1", - #else - .inputChanStr_15 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 13) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_15 = "Analogue 15/SPDIF 2", - #else - .inputChanStr_15 = "S/PDIF 2", - #endif -#else - .inputChanStr_15 = "Analogue 15", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 15) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 15) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_16 = "Analogue 16/SPDIF 1", - #else - .inputChanStr_16 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 14) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_16 = "Analogue 16/SPDIF 2", - #else - .inputChanStr_16 = "S/PDIF 2", - #endif -#else - .inputChanStr_16 = "Analogue 16", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 16) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 16) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_17 = "Analogue 17/SPDIF 1", - #else - .inputChanStr_17 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 15) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_17 = "Analogue 17/SPDIF 2", - #else - .inputChanStr_17 = "S/PDIF 2", - #endif -#else - .inputChanStr_17 = "Analogue 17", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 17) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 17) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_18 = "Analogue 18/SPDIF 1", - #else - .inputChanStr_18 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 16) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_18 = "Analogue 18/SPDIF 2", - #else - .inputChanStr_18 = "S/PDIF 2", - #endif -#else - .inputChanStr_18 = "Analogue 18", -#endif -#endif - -#if (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 == 22) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_24 = "Analogue 24/SPDIF 2", - #else - .inputChanStr_24 = "S/PDIF 2", - #endif -#else - .inputChanStr_24 = "Analogue 24", -#endif -#endif -#if (NUM_USB_CHAN_IN > 24) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 24) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_25 = "Analogue 25/SPDIF 1", - #else - .inputChanStr_25 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 23) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_25 = "Analogue 25/SPDIF 2", - #else - .inputChanStr_25 = "S/PDIF 2", - #endif -#else - .inputChanStr_25 = "Analogue 25", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 25) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 25) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_26 = "Analogue 26/SPDIF 1", - #else - .inputChanStr_26 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 24) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_26 = "Analogue 26/SPDIF 2", - #else - .inputChanStr_26 = "S/PDIF 2", - #endif -#else - .inputChanStr_26 = "Analogue 26", -#endif -#endif -#if (NUM_USB_CHAN_IN > 26) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 26) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_27 = "Analogue 27/SPDIF 1", - #else - .inputChanStr_27 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 25) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_27 = "Analogue 27/SPDIF 2", - #else - .inputChanStr_27 = "S/PDIF 2", - #endif -#else - .inputChanStr_27 = "Analogue 27", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 27) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 27) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_28 = "Analogue 28/SPDIF 1", - #else - .inputChanStr_28 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 26) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_28 = "Analogue 28/SPDIF 2", - #else - .inputChanStr_28 = "S/PDIF 2", - #endif -#else - .inputChanStr_28 = "Analogue 28", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 28) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 28) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_29 = "Analogue 29/SPDIF 1", - #else - .inputChanStr_29 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 27) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_29 = "Analogue 29/SPDIF 2", - #else - .inputChanStr_29 = "S/PDIF 2", - #endif -#else - .inputChanStr_29 = "Analogue 29", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 29) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 29) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_30 = "Analogue 30/SPDIF 1", - #else - .inputChanStr_30 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 28) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_30 = "Analogue 30/SPDIF 2", - #else - .inputChanStr_30 = "S/PDIF 2", - #endif -#else - .inputChanStr_30 = "Analogue 30", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 30) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 30) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_31 = "Analogue 31/SPDIF 1", - #else - .inputChanStr_31 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 29) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_31 = "Analogue 31/SPDIF 2", - #else - .inputChanStr_31 = "S/PDIF 2", - #endif -#else - .inputChanStr_31 = "Analogue 31", -#endif -#endif - -#if (NUM_USB_CHAN_IN > 31) -#if defined(SPDIF_RX) && (SPDIF_RX_INDEX == 31) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_32 = "Analogue 32/SPDIF 1", - #else - .inputChanStr_32 = "S/PDIF 1", - #endif -#elif defined(SPDIF_RX) && (SPDIF_RX_INDEX == 30) - #if(SPDIF_RX_INDEX < I2S_CHANS_ADC) - .inputChanStr_32 = "Analogue 32/SPDIF 2", - #else - .inputChanStr_32 = "S/PDIF 2", - #endif -#else - .inputChanStr_32 = "Analogue 32", -#endif +#error NUM_USB_CHAN_OUT > 32 #endif #if (NUM_USB_CHAN_IN > 32) From 26dfbadc36a65e1844daf86a0c4a8e73375899cd Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 12:05:51 +0000 Subject: [PATCH 015/137] Added SPDIF_TX_TILE define --- module_usb_audio/devicedefines.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h index 39d247ef..a294a4c7 100644 --- a/module_usb_audio/devicedefines.h +++ b/module_usb_audio/devicedefines.h @@ -38,6 +38,13 @@ #define MIDI_TILE AUDIO_IO_TILE #endif +/** + * @brief Location (tile) of SPDIF Tx. Default: AUDIO_IO_TILE + */ +#ifndef SPDIF_TX_TILE +#define SPDIF_TX_TILE AUDIO_IO_TILE +#endif + /** * @brief Number of input channels (device to host). Default: NONE (Must be defined by app) */ From 55dd4834c386bdac59ff467b2f1047a107306fa5 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 12:06:27 +0000 Subject: [PATCH 016/137] Fixes to add X200 support and get X200 audio board running --- module_usb_audio/main.xc | 6 +++--- module_usb_audio/uac_hwresources.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/module_usb_audio/main.xc b/module_usb_audio/main.xc index 646406e5..63ae4743 100755 --- a/module_usb_audio/main.xc +++ b/module_usb_audio/main.xc @@ -116,7 +116,7 @@ on tile[AUDIO_IO_TILE] : port p_mclk_in = PORT_MCLK_IN; on tile[XUD_TILE] : in port p_for_mclk_count = PORT_MCLK_COUNT; #ifdef SPDIF -on tile[AUDIO_IO_TILE] : buffered out port:32 p_spdif_tx = PORT_SPDIF_OUT; +on tile[SPDIF_TX_TILE] : buffered out port:32 p_spdif_tx = PORT_SPDIF_OUT; #endif #ifdef ADAT_TX @@ -182,7 +182,7 @@ on tile[XUD_TILE] : out port p_usb_rst = PORT_USB_RESET; #define p_usb_rst null #endif -#if (XUD_SERIES_SUPPORT != XUD_U_SERIES) +#if (XUD_SERIES_SUPPORT != XUD_U_SERIES && XUD_SERIES_SUPPORT != XUD_X200_SERIES) /* L Series also needs a clock block for this port */ on tile[XUD_TILE] : clock clk = CLKBLK_USB_RST; #else @@ -309,7 +309,7 @@ void usb_audio_core(chanend c_mix_out /* Attach mclk count port to mclk clock-block (for feedback) */ //set_port_clock(p_for_mclk_count, clk_audio_mclk); -#if(AUDIO_IO_TILE != 0) +#if(AUDIO_IO_TILE != XUD_TILE) set_clock_src(clk_audio_mclk2, p_mclk_in2); set_port_clock(p_for_mclk_count, clk_audio_mclk2); start_clock(clk_audio_mclk2); diff --git a/module_usb_audio/uac_hwresources.h b/module_usb_audio/uac_hwresources.h index e8d2e8e0..d5547817 100644 --- a/module_usb_audio/uac_hwresources.h +++ b/module_usb_audio/uac_hwresources.h @@ -4,7 +4,7 @@ #include "xud.h" /* XMOS USB Device Layer defines and functions */ -#if (XUD_SERIES_SUPPORT != XUD_U_SERIES) +#if ((XUD_SERIES_SUPPORT != XUD_U_SERIES) && (XUD_SERIES_SUPPORT != XUD_X200_SERIES)) /* XUD_L_SERIES and XUD_G_SERIES */ @@ -45,7 +45,7 @@ /* #define CLKBLK_ADAT_RX XS1_CLKBLK_3 */ /* Note, U-series XUD uses clock blocks 4 and 5 - see XUD_Ports.xc */ -#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */ +//#define CLKBLK_FLASHLIB XS1_CLKBLK_5 /* Clock block for use by flash lib */ /* #define CLKBLK_SPDIF_TX XS1_CLKBLK_1 */ /* #define CLKBLK_MCLK XS1_CLKBLK_2 */ From ea931680adb3bf90f211320ba5a62f9b2f363e8e Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 15:56:01 +0000 Subject: [PATCH 017/137] Fixed trap when SPDIF_TX and ADAT_TX both enabled - caused by sharing clock block --- module_usb_audio/audio.xc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index 6929e9f5..8c5aea29 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -963,17 +963,20 @@ chanend ?c_config, chanend ?c) EnableBufferedPort(p_dsd_dac[i], 32); } #endif - +#ifdef ADAT_TX + /* Share SPDIF clk blk */ + configure_clock_src(clk_mst_spd, p_mclk_in); + configure_out_port_no_ready(p_adat_tx, clk_mst_spd, 0); + set_clock_fall_delay(clk_mst_spd, 7); +#ifndef SPDIF + start_clock(clk_mst_spd); +#endif +#endif /* Configure ADAT/SPDIF tx ports */ #ifdef SPDIF SpdifTransmitPortConfig(p_spdif_tx, clk_mst_spd, p_mclk_in); #endif -#ifdef ADAT_TX - configure_clock_src(clk_mst_spd, p_mclk_in); - configure_out_port_no_ready(p_adat_tx, clk_mst_spd, 0); - set_clock_fall_delay(clk_mst_spd, 7); - start_clock(clk_mst_spd); -#endif + /* Perform required CODEC/ADC/DAC initialisation */ AudioHwInit(c_config); From 389546a2b5e329acad60f78e1babbcb05c32d192 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 15:59:52 +0000 Subject: [PATCH 018/137] Fixed hard-coded adat/mclk multiplier --- module_usb_audio/audio.xc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/module_usb_audio/audio.xc b/module_usb_audio/audio.xc index 8c5aea29..0ecb47f1 100755 --- a/module_usb_audio/audio.xc +++ b/module_usb_audio/audio.xc @@ -907,6 +907,7 @@ chanend ?c_config, chanend ?c) #ifdef ADAT_TX chan c_adat_out; unsigned adatSmuxMode = 0; + unsigned adatMultiple = 0; #endif unsigned curSamFreq = DEFAULT_FREQ; @@ -990,6 +991,7 @@ chanend ?c_config, chanend ?c) #ifdef ADAT_TX /* Calculate ADAT SMUX mode (1, 2, 4) */ adatSmuxMode = curSamFreq / 44100; + adatMultiple = mClk / 44100; #endif } else if ((MCLK_48 % curSamFreq) == 0) @@ -998,6 +1000,7 @@ chanend ?c_config, chanend ?c) #ifdef ADAT_TX /* Calculate ADAT SMUX mode (1, 2, 4) */ adatSmuxMode = curSamFreq / 48000; + adatMultiple = mClk / 48000; #endif } @@ -1147,7 +1150,7 @@ chanend ?c_config, chanend ?c) // adatSmuxMode = 1 for FS = 44K1 or 48K0 // = 2 for FS = 88K2 or 96K0 // = 4 for FS = 176K4 or 192K0 - outuint(c_adat_out, mClk/curSamFreq); + outuint(c_adat_out, adatMultiple); outuint(c_adat_out, adatSmuxMode); #endif command = deliver(c_mix_out, From 0796ecb86e3036e23e263b9f7d2cf2e84a9ec278 Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 16:02:54 +0000 Subject: [PATCH 019/137] Changelog updates for 6.11.1 --- CHANGELOG.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2a6666e1..c75d1dea 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,8 +1,9 @@ sc_usb_audio Change Log ======================= -HEAD ----- +6.11.1 +------ + - ADDED: ADAT transmit functionality, inclusing SMUX. See ADAT_TX and ADAT_TX_INDEX. - RESOLVED: Build issue with CODEC_MASTER (xCore is I2S slave) enabled - RESOLVED: Channel ordering issue in when TDM and CODEC_MASTER mode enabled - RESOLVED: DFU fails when SPDIF_RX enabled due to clock block being shared between SPDIF From a28fccdcb738d8450cef98bb8ff9a17403c799ac Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 4 Mar 2015 16:10:04 +0000 Subject: [PATCH 020/137] xpd: Patched version number --- module_dfu/.cproject | 18 +++++++++++++++--- module_usb_audio/devicedefines.h | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/module_dfu/.cproject b/module_dfu/.cproject index da068095..bb778c83 100644 --- a/module_dfu/.cproject +++ b/module_dfu/.cproject @@ -156,7 +156,11 @@