From 4a74c81a96a4b5b0a0b86782667d30583c7c1679 Mon Sep 17 00:00:00 2001 From: Ed Date: Thu, 9 May 2024 12:11:13 +0100 Subject: [PATCH 1/4] Initial changes for variable channel count ADAT Tx interfaces --- lib_xua/api/xua_conf_default.h | 93 ++++++++++++++----- lib_xua/src/core/endpoint0/xua_endpoint0.c | 6 +- .../src/core/endpoint0/xua_ep0_descriptors.h | 48 +++++----- 3 files changed, 96 insertions(+), 51 deletions(-) diff --git a/lib_xua/api/xua_conf_default.h b/lib_xua/api/xua_conf_default.h index 82be6dab..69690a43 100644 --- a/lib_xua/api/xua_conf_default.h +++ b/lib_xua/api/xua_conf_default.h @@ -428,6 +428,18 @@ #define ADAT_TX_INDEX (0) #endif +#if XUA_ADAT_TX_EN + #if (MIN_FREQ < 88200) + #define ADAT_TX_MAX_CHANS (8) + #elif (MIN_FREQ < 176400) + #define ADAT_TX_MAX_CHANS (4) + #else + #define ADAT_TX_MAX_CHANS (2) + #endif +#else +#define ADAT_TX_MAX_CHANS (0) +#endif + /** * @brief Enables SPDIF Rx. Default: 0 (Disabled) */ @@ -484,37 +496,70 @@ #endif #endif -#if (XUA_ADAT_RX_EN) /* Setup input stream formats for ADAT */ -#if (MAX_FREQ > 96000) - #if (MIN_FREQ > 96000) +#if (XUA_ADAT_RX_EN) + #if (MAX_FREQ > 96000) + #if (MIN_FREQ > 96000) + #define INPUT_FORMAT_COUNT 1 + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN + #elif (MIN_FREQ > 48000) + #define INPUT_FORMAT_COUNT 2 + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN + #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 2) + #else + #define INPUT_FORMAT_COUNT 3 + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN + #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 4) + #define HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT (NUM_USB_CHAN_IN - 6) + #endif + #elif (MAX_FREQ > 48000) + #if (MIN_FREQ > 48000) + #define INPUT_FORMAT_COUNT 1 + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN + #else + #define INPUT_FORMAT_COUNT 2 + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN + #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 4) + #endif + #else #define INPUT_FORMAT_COUNT 1 #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN - #elif (MIN_FREQ > 48000) - #define INPUT_FORMAT_COUNT 2 - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN - #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 2) - #else - #define INPUT_FORMAT_COUNT 3 - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN - #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 4) - #define HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT (NUM_USB_CHAN_IN - 6) #endif -#elif (MAX_FREQ > 48000) - #if (MIN_FREQ > 48000) - #define INPUT_FORMAT_COUNT 1 - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN - #else - #define INPUT_FORMAT_COUNT 2 - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN - #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT (NUM_USB_CHAN_IN - 4) - #endif -#else - #define INPUT_FORMAT_COUNT 1 - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN #endif +/* Setup output stream formats for ADAT */ +#if (XUA_ADAT_TX_EN) + #if (MAX_FREQ > 96000) + #if (MIN_FREQ > 96000) + #define OUTPUT_FORMAT_COUNT 1 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #elif (MIN_FREQ > 48000) + #define OUTPUT_FORMAT_COUNT 2 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #define HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT (NUM_USB_CHAN_OUT - 2) + #else + #define OUTPUT_FORMAT_COUNT 3 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #define HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT (NUM_USB_CHAN_OUT - 4) + #define HS_STREAM_FORMAT_OUTPUT_3_CHAN_COUNT (NUM_USB_CHAN_OUT - 6) + #endif + #elif (MAX_FREQ > 48000) + #if (MIN_FREQ > 48000) + #define OUTPUT_FORMAT_COUNT 1 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #else + #define OUTPUT_FORMAT_COUNT 2 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #define HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT (NUM_USB_CHAN_OUT - 4) + #endif + #else + #define OUTPUT_FORMAT_COUNT 1 + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT + #endif + #define STREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS 24 + #define STREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS 24 + #define STREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS 24 #endif /** diff --git a/lib_xua/src/core/endpoint0/xua_endpoint0.c b/lib_xua/src/core/endpoint0/xua_endpoint0.c index 6a656f95..1f23a457 100755 --- a/lib_xua/src/core/endpoint0/xua_endpoint0.c +++ b/lib_xua/src/core/endpoint0/xua_endpoint0.c @@ -968,20 +968,20 @@ void XUA_Endpoint0_loop(XUD_Result_t result, USB_SetupPacket_t sp, chanend c_ep0 cfgDesc_Audio2.Audio_Out_Format.bSubslotSize = HS_STREAM_FORMAT_OUTPUT_1_SUBSLOT_BYTES; cfgDesc_Audio2.Audio_Out_Format.bBitResolution = HS_STREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS; cfgDesc_Audio2.Audio_Out_Endpoint.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_1_MAXPACKETSIZE; - cfgDesc_Audio2.Audio_Out_ClassStreamInterface.bNrChannels = NUM_USB_CHAN_OUT; + cfgDesc_Audio2.Audio_Out_ClassStreamInterface.bNrChannels = HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT; #endif #if (OUTPUT_FORMAT_COUNT > 1) cfgDesc_Audio2.Audio_Out_Format_2.bSubslotSize = HS_STREAM_FORMAT_OUTPUT_2_SUBSLOT_BYTES; cfgDesc_Audio2.Audio_Out_Format_2.bBitResolution = HS_STREAM_FORMAT_OUTPUT_2_RESOLUTION_BITS; cfgDesc_Audio2.Audio_Out_Endpoint_2.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_2_MAXPACKETSIZE; - cfgDesc_Audio2.Audio_Out_ClassStreamInterface_2.bNrChannels = NUM_USB_CHAN_OUT; + cfgDesc_Audio2.Audio_Out_ClassStreamInterface_2.bNrChannels = HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT; #endif #if (OUTPUT_FORMAT_COUNT > 2) cfgDesc_Audio2.Audio_Out_Format_3.bSubslotSize = HS_STREAM_FORMAT_OUTPUT_3_SUBSLOT_BYTES; cfgDesc_Audio2.Audio_Out_Format_3.bBitResolution = HS_STREAM_FORMAT_OUTPUT_3_RESOLUTION_BITS; cfgDesc_Audio2.Audio_Out_Endpoint_3.wMaxPacketSize = HS_STREAM_FORMAT_OUTPUT_3_MAXPACKETSIZE; - cfgDesc_Audio2.Audio_Out_ClassStreamInterface_3.bNrChannels = NUM_USB_CHAN_OUT; + cfgDesc_Audio2.Audio_Out_ClassStreamInterface_3.bNrChannels = HS_STREAM_FORMAT_OUTPUT_3_CHAN_COUNT; #endif #endif #if (NUM_USB_CHAN_IN > 0) diff --git a/lib_xua/src/core/endpoint0/xua_ep0_descriptors.h b/lib_xua/src/core/endpoint0/xua_ep0_descriptors.h index 8035de14..e151a836 100644 --- a/lib_xua/src/core/endpoint0/xua_ep0_descriptors.h +++ b/lib_xua/src/core/endpoint0/xua_ep0_descriptors.h @@ -1454,15 +1454,15 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2= /* Class Specific AS Interface Descriptor */ .Audio_Out_ClassStreamInterface = { - 0x10, /* 0 bLength: 16 */ - UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ + 0x10, /* 0 bLength: 16 */ + UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ UAC_CS_AS_INTERFACE_SUBTYPE_AS_GENERAL, /* 2 bDescriptorSubType */ - ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ - 0x00, /* 4 bmControls */ - UAC_FORMAT_TYPE_I, /* 5 bFormatType */ - STREAM_FORMAT_OUTPUT_1_DATAFORMAT,/* 6:10 bmFormats (note this is a bitmap) */ - NUM_USB_CHAN_OUT, /* 11 bNrChannels */ - 0x00000000, /* 12:14: bmChannelConfig */ + ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ + 0x00, /* 4 bmControls */ + UAC_FORMAT_TYPE_I, /* 5 bFormatType */ + STREAM_FORMAT_OUTPUT_1_DATAFORMAT, /* 6:10 bmFormats (note this is a bitmap) */ + HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT, /* 11 bNrChannels */ + 0x00000000, /* 12:14: bmChannelConfig */ .iChannelNames = offsetof(StringDescTable_t, outputChanStr_1)/sizeof(char *), }, @@ -1545,15 +1545,15 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2= /* Class Specific AS Interface Descriptor */ .Audio_Out_ClassStreamInterface_2 = { - 0x10, /* 0 bLength: 16 */ - UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ + 0x10, /* 0 bLength: 16 */ + UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ UAC_CS_AS_INTERFACE_SUBTYPE_AS_GENERAL, /* 2 bDescriptorSubType */ - ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ - 0x00, /* 4 bmControls */ - UAC_FORMAT_TYPE_I, /* 5 bFormatType */ - STREAM_FORMAT_OUTPUT_2_DATAFORMAT,/* 6:10 bmFormats (note this is a bitmap) */ - NUM_USB_CHAN_OUT, /* 11 bNrChannels */ - 0x00000000, /* 12:14: bmChannelConfig */ + ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ + 0x00, /* 4 bmControls */ + UAC_FORMAT_TYPE_I, /* 5 bFormatType */ + STREAM_FORMAT_OUTPUT_2_DATAFORMAT, /* 6:10 bmFormats (note this is a bitmap) */ + HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT, /* 11 bNrChannels */ + 0x00000000, /* 12:14: bmChannelConfig */ .iChannelNames = (offsetof(StringDescTable_t, outputChanStr_1)/sizeof(char *)), }, @@ -1636,15 +1636,15 @@ USB_Config_Descriptor_Audio2_t cfgDesc_Audio2= /* Class Specific AS Interface Descriptor */ .Audio_Out_ClassStreamInterface_3 = { - 0x10, /* 0 bLength: 16 */ - UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ + 0x10, /* 0 bLength: 16 */ + UAC_CS_DESCTYPE_INTERFACE, /* 1 bDescriptorType: 0x24 */ UAC_CS_AS_INTERFACE_SUBTYPE_AS_GENERAL, /* 2 bDescriptorSubType */ - ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ - 0x00, /* 4 bmControls */ - UAC_FORMAT_TYPE_I, /* 5 bFormatType */ - STREAM_FORMAT_OUTPUT_3_DATAFORMAT,/* 6:10 bmFormats (note this is a bitmap) */ - NUM_USB_CHAN_OUT, /* 11 bNrChannels */ - 0x00000000, /* 12:14: bmChannelConfig */ + ID_IT_USB, /* 3 bTerminalLink (Linked to USB input terminal) */ + 0x00, /* 4 bmControls */ + UAC_FORMAT_TYPE_I, /* 5 bFormatType */ + STREAM_FORMAT_OUTPUT_3_DATAFORMAT, /* 6:10 bmFormats (note this is a bitmap) */ + HS_STREAM_FORMAT_OUTPUT_3_CHAN_COUNT, /* 11 bNrChannels */ + 0x00000000, /* 12:14: bmChannelConfig */ .iChannelNames = offsetof(StringDescTable_t, outputChanStr_1)/sizeof(char *), }, From f7df5fca20513ccf855e8775173710c66bf47a6e Mon Sep 17 00:00:00 2001 From: Ed Date: Thu, 9 May 2024 14:58:10 +0100 Subject: [PATCH 2/4] Ensure HS_STREAM_FORMAT_OUTPUT_N_CHAN_COUNT is set outside of ADAT Tx --- lib_xua/api/xua_conf_default.h | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/lib_xua/api/xua_conf_default.h b/lib_xua/api/xua_conf_default.h index 69690a43..e012001f 100644 --- a/lib_xua/api/xua_conf_default.h +++ b/lib_xua/api/xua_conf_default.h @@ -428,6 +428,7 @@ #define ADAT_TX_INDEX (0) #endif +/* Calculate max ADAT channels based on sample rate range */ #if XUA_ADAT_TX_EN #if (MIN_FREQ < 88200) #define ADAT_TX_MAX_CHANS (8) @@ -447,6 +448,14 @@ #define XUA_SPDIF_RX_EN (0) #endif +/** + * @brief Enables ADAT Rx. Default: 0 (Disabled) + */ +#ifndef XUA_ADAT_RX_EN +#define XUA_ADAT_RX_EN (0) +#endif + +/* Calculate max ADAT channels based on sample rate range */ #if XUA_ADAT_RX_EN #if (MIN_FREQ < 88200) #define ADAT_RX_MAX_CHANS (8) @@ -459,12 +468,6 @@ #define ADAT_RX_MAX_CHANS (0) #endif -/** - * @brief Enables ADAT Rx. Default: 0 (Disabled) - */ -#ifndef XUA_ADAT_RX_EN -#define XUA_ADAT_RX_EN (0) -#endif /** * @brief S/PDIF Rx first channel index, defines which channels S/PDIF will be input on. @@ -1036,7 +1039,18 @@ #define HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT NUM_USB_CHAN_IN #endif +/* Channel count defines for input streams */ +#ifndef HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT + #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT +#endif +#ifndef HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT + #define HS_STREAM_FORMAT_OUTPUT_2_CHAN_COUNT NUM_USB_CHAN_OUT +#endif + +#ifndef HS_STREAM_FORMAT_OUTPUT_3_CHAN_COUNT + #define HS_STREAM_FORMAT_OUTPUT_3_CHAN_COUNT NUM_USB_CHAN_OUT +#endif /** * @brief Sample sub-slot size (bytes) of input stream Alternate 1 when running in high-speed From d861d358c488abc2bac74a4e340968da373448b4 Mon Sep 17 00:00:00 2001 From: Ed Date: Thu, 9 May 2024 16:37:36 +0100 Subject: [PATCH 3/4] Changelog --- CHANGELOG.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e14cfd90..5c8ce1b7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -11,6 +11,8 @@ UNRELEASED * FIXED: Incorrect internal input EP count for input only devices * ADDED: MIDI unit and subsystem tests * FIXED: ADAT Tx called too frequently + * CHANGED: ADAT Tx presents different channel count interfaces based on sample + rate 4.0.0 ----- From 708f65b3e92505086883bb7852bb7180c3d3adc5 Mon Sep 17 00:00:00 2001 From: Ed Date: Fri, 10 May 2024 11:45:19 +0100 Subject: [PATCH 4/4] Ross's review feedback - tidy ADAT xua_conf defaults --- lib_xua/api/xua_conf_default.h | 124 +++++++++++++++++---------------- 1 file changed, 64 insertions(+), 60 deletions(-) diff --git a/lib_xua/api/xua_conf_default.h b/lib_xua/api/xua_conf_default.h index e012001f..76da2106 100644 --- a/lib_xua/api/xua_conf_default.h +++ b/lib_xua/api/xua_conf_default.h @@ -412,35 +412,6 @@ #define SPDIF_TX_INDEX (0) #endif -/** - * @brief Enables ADAT Tx. Default: 0 (Disabled) - */ -#ifndef XUA_ADAT_TX_EN -#define XUA_ADAT_TX_EN (0) -#endif - -/** - * @brief Defines which output channels (8) should be output on ADAT. Note, Output channels indexed from 0. - * - * Default: 0 (i.e. channels [0:7]) - * */ -#ifndef ADAT_TX_INDEX -#define ADAT_TX_INDEX (0) -#endif - -/* Calculate max ADAT channels based on sample rate range */ -#if XUA_ADAT_TX_EN - #if (MIN_FREQ < 88200) - #define ADAT_TX_MAX_CHANS (8) - #elif (MIN_FREQ < 176400) - #define ADAT_TX_MAX_CHANS (4) - #else - #define ADAT_TX_MAX_CHANS (2) - #endif -#else -#define ADAT_TX_MAX_CHANS (0) -#endif - /** * @brief Enables SPDIF Rx. Default: 0 (Disabled) */ @@ -448,26 +419,6 @@ #define XUA_SPDIF_RX_EN (0) #endif -/** - * @brief Enables ADAT Rx. Default: 0 (Disabled) - */ -#ifndef XUA_ADAT_RX_EN -#define XUA_ADAT_RX_EN (0) -#endif - -/* Calculate max ADAT channels based on sample rate range */ -#if XUA_ADAT_RX_EN - #if (MIN_FREQ < 88200) - #define ADAT_RX_MAX_CHANS (8) - #elif (MIN_FREQ < 176400) - #define ADAT_RX_MAX_CHANS (4) - #else - #define ADAT_RX_MAX_CHANS (2) - #endif -#else -#define ADAT_RX_MAX_CHANS (0) -#endif - /** * @brief S/PDIF Rx first channel index, defines which channels S/PDIF will be input on. @@ -476,10 +427,63 @@ * Default: NONE (Must be defined by app when SPDIF_RX enabled) */ #if (XUA_SPDIF_RX_EN) || defined (__DOXYGEN__) -#ifndef SPDIF_RX_INDEX - #error SPDIF_RX_INDEX not defined and XUA_SPDIF_RX_EN defined - #define SPDIF_RX_INDEX 0 /* Default define for doxygen */ + #ifndef SPDIF_RX_INDEX + #error SPDIF_RX_INDEX not defined and XUA_SPDIF_RX_EN defined + #define SPDIF_RX_INDEX 0 /* Default define for doxygen */ + #endif #endif + + +/** + * @brief Enables ADAT Tx. Default: 0 (Disabled) + */ +#ifndef XUA_ADAT_TX_EN +#define XUA_ADAT_TX_EN (0) +#endif + +/* Calculate max ADAT channels based on sample rate range. Used for Tx and Rx */ +#if (MIN_FREQ < 88200) + #define ADAT_MAX_CHANS (8) +#elif (MIN_FREQ < 176400) + #define ADAT_MAX_CHANS (4) +#else + #define ADAT_MAX_CHANS (2) +#endif + +/* Set the maximum number of channels for ADAT */ +#if XUA_ADAT_TX_EN + #define ADAT_TX_MAX_CHANS ADAT_MAX_CHANS +#else + #define ADAT_TX_MAX_CHANS (0) +#endif + +/** + * @brief Defines which output channels (8) should be output on ADAT. Note, Output channels indexed from 0. + * + * Default: 0 (i.e. channels [0:7]) + * */ +#if (XUA_ADAT_TX_EN) || defined(__DOXYGEN__) + #ifndef ADAT_TX_INDEX + #define ADAT_TX_INDEX (0) + #endif + + #if (ADAT_TX_INDEX + ADAT_TX_MAX_CHANS > NUM_USB_CHAN_OUT) + #error Not enough channels for ADAT Tx + #endif +#endif + +/** + * @brief Enables ADAT Rx. Default: 0 (Disabled) + */ +#ifndef XUA_ADAT_RX_EN +#define XUA_ADAT_RX_EN (0) +#endif + +/* Set the maximum number of channels for ADAT */ +#if XUA_ADAT_RX_EN + #define ADAT_RX_MAX_CHANS ADAT_MAX_CHANS +#else + #define ADAT_RX_MAX_CHANS (0) #endif /** @@ -489,14 +493,14 @@ * Default: NONE (Must be defined by app when XUA_ADAT_RX_EN is true) */ #if (XUA_ADAT_RX_EN) || defined(__DOXYGEN__) -#ifndef ADAT_RX_INDEX - #error ADAT_RX_INDEX not defined and XUA_ADAT_RX_EN is true - #define ADAT_RX_INDEX (0) /* Default define for doxygen */ -#endif + #ifndef ADAT_RX_INDEX + #error ADAT_RX_INDEX not defined and XUA_ADAT_RX_EN is true + #define ADAT_RX_INDEX (0) /* Default define for doxygen */ + #endif -#if (ADAT_RX_INDEX + ADAT_RX_MAX_CHANS > NUM_USB_CHAN_IN) - #error Not enough channels for ADAT -#endif + #if (ADAT_RX_INDEX + ADAT_RX_MAX_CHANS > NUM_USB_CHAN_IN) + #error Not enough channels for ADAT Rx + #endif #endif @@ -1039,7 +1043,7 @@ #define HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT NUM_USB_CHAN_IN #endif -/* Channel count defines for input streams */ +/* Channel count defines for output streams */ #ifndef HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT #define HS_STREAM_FORMAT_OUTPUT_1_CHAN_COUNT NUM_USB_CHAN_OUT #endif