From 6b73736874c1265371f6f9cbd1e3f0caf30028fa Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Fri, 19 Sep 2014 11:24:30 +0100 Subject: [PATCH] Added various defines for input stream format --- module_usb_audio/devicedefines.h | 82 +++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 6 deletions(-) diff --git a/module_usb_audio/devicedefines.h b/module_usb_audio/devicedefines.h index eacb95a2..304b269b 100644 --- a/module_usb_audio/devicedefines.h +++ b/module_usb_audio/devicedefines.h @@ -270,8 +270,16 @@ #endif #ifdef ADAT_RX + /* Setup input stream formats for ADAT */ +#if(MAX_FREQ > 96000) +#define INPUT_FORMAT_COUNT 3 +#elif(MAX_FREQ > 48000) #define INPUT_FORMAT_COUNT 2 +#else +#define INPUT_FORMAT_COUNT 1 +#endif + #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) @@ -663,7 +671,6 @@ * Default: 1 */ #ifndef INPUT_FORMAT_COUNT - #error #define INPUT_FORMAT_COUNT 1 #endif @@ -676,30 +683,57 @@ #define STREAM_FORMAT_INPUT_1_RESOLUTION_BITS 24 #endif +#ifndef STREAM_FORMAT_INPUT_2_RESOLUTION_BITS + #define STREAM_FORMAT_INPUT_2_RESOLUTION_BITS 24 +#endif + +#ifndef STREAM_FORMAT_INPUT_3_RESOLUTION_BITS + #define STREAM_FORMAT_INPUT_3_RESOLUTION_BITS 24 +#endif + + + /* Default resolutions for HS */ #ifndef HS_STREAM_FORMAT_INPUT_1_RESOLUTION_BITS #define HS_STREAM_FORMAT_INPUT_1_RESOLUTION_BITS STREAM_FORMAT_INPUT_1_RESOLUTION_BITS #endif +#ifndef HS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS + #define HS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS STREAM_FORMAT_INPUT_2_RESOLUTION_BITS +#endif + +#ifndef HS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS + #define HS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS STREAM_FORMAT_INPUT_3_RESOLUTION_BITS +#endif + + /* Default resolutions for FS (same as HS) */ #ifndef FS_STREAM_FORMAT_INPUT_1_RESOLUTION_BITS #define FS_STREAM_FORMAT_INPUT_1_RESOLUTION_BITS STREAM_FORMAT_INPUT_1_RESOLUTION_BITS #endif +#ifndef FS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS + #define FS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS STREAM_FORMAT_INPUT_2_RESOLUTION_BITS +#endif + +#ifndef FS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS + #define FS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS STREAM_FORMAT_INPUT_3_RESOLUTION_BITS +#endif + + /* Channel count defines for input streams */ #ifndef HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHANS_IN + #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHAN_IN #endif #ifndef HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT - #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT NUM_USB_CHANS_IN + #define HS_STREAM_FORMAT_INPUT_2_CHAN_COUNT NUM_USB_CHAN_IN #endif #ifndef HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT - #define HS_STREAM_FORMAT_INPUT_1_CHAN_COUNT NUM_USB_CHANS_IN + #define HS_STREAM_FORMAT_INPUT_3_CHAN_COUNT NUM_USB_CHAN_IN #endif -/****** END INPUT STREAMS FORMAT *****/ /** @@ -719,6 +753,22 @@ #endif #endif +#ifndef HS_STREAM_FORMAT_INPUT_2_SUBSLOT_BYTES + #if (HS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS == 24) + #define HS_STREAM_FORMAT_INPUT_2_SUBSLOT_BYTES 4 /* 4 byte subslot is nicer for our 32 bit machine to unpack.. */ + #else + #define HS_STREAM_FORMAT_INPUT_2_SUBSLOT_BYTES (HS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS/8) + #endif +#endif + +#ifndef HS_STREAM_FORMAT_INPUT_3_SUBSLOT_BYTES + #if (HS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS == 24) + #define HS_STREAM_FORMAT_INPUT_3_SUBSLOT_BYTES 4 /* 4 byte subslot is nicer for our 32 bit machine to unpack.. */ + #else + #define HS_STREAM_FORMAT_INPUT_3_SUBSLOT_BYTES (HS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS/8) + #endif +#endif + /** * @brief Sample sub-slot size (bytes) of input stream Alternate 1 when running in full-speed * @@ -728,7 +778,15 @@ * Default: STREAM_FORMAT_INPUT_1_RESOLUTION_BITS / 8 */ #ifndef FS_STREAM_FORMAT_INPUT_1_SUBSLOT_BYTES - #define FS_STREAM_FORMAT_INPUT_1_SUBSLOT_BYTES (FS_STREAM_FORMAT_INPUT_1_RESOLUTION_BITS/8) + #define FS_STREAM_FORMAT_INPUT_1_SUBSLOT_BYTES (FS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS/8) +#endif + +#ifndef FS_STREAM_FORMAT_INPUT_2_SUBSLOT_BYTES + #define FS_STREAM_FORMAT_INPUT_2_SUBSLOT_BYTES (FS_STREAM_FORMAT_INPUT_2_RESOLUTION_BITS/8) +#endif + +#ifndef FS_STREAM_FORMAT_INPUT_3_SUBSLOT_BYTES + #define FS_STREAM_FORMAT_INPUT_3_SUBSLOT_BYTES (FS_STREAM_FORMAT_INPUT_3_RESOLUTION_BITS/8) #endif /** @@ -740,6 +798,18 @@ #define STREAM_FORMAT_INPUT_1_DATAFORMAT UAC_FORMAT_TYPEI_PCM #endif +#ifndef STREAM_FORMAT_INPUT_2_DATAFORMAT + #define STREAM_FORMAT_INPUT_2_DATAFORMAT UAC_FORMAT_TYPEI_PCM +#endif + +#ifndef STREAM_FORMAT_INPUT_3_DATAFORMAT + #define STREAM_FORMAT_INPUT_3_DATAFORMAT UAC_FORMAT_TYPEI_PCM +#endif + + +/****** END INPUT STREAMS FORMAT *****/ + + /** * @brief Enable/disable output volume control including all processing and descriptor support *