forked from PAWPAW-Mirror/lib_xua
Conflicted merge in descriptors.h
This commit is contained in:
@@ -242,45 +242,33 @@ unsigned char devQualDesc_Null[] =
|
||||
#define OUTPUT_ALT_LENGTH (OUTPUT_ALT_LENGTH_ADAT + OUTPUT_ALT_LENGTH_DSD)
|
||||
|
||||
|
||||
// Positions in strDescs_Audio2
|
||||
#define INTERNAL_CLOCK_STRING_INDEX (14)
|
||||
#define SPDIF_CLOCK_STRING_INDEX (15)
|
||||
|
||||
// Positions in strDescs
|
||||
enum {
|
||||
INTERNAL_CLOCK_STRING_INDEX = 14,
|
||||
#ifdef SPDIF_RX
|
||||
#define ADAT_CLOCK_STRING_INDEX (SPDIF_CLOCK_STRING_INDEX + 1)
|
||||
#else
|
||||
#define ADAT_CLOCK_STRING_INDEX (SPDIF_CLOCK_STRING_INDEX)
|
||||
SPDIF_CLOCK_STRING_INDEX,
|
||||
#endif
|
||||
|
||||
#ifdef ADAT_RX
|
||||
#define DFU_STRING_INDEX (ADAT_CLOCK_STRING_INDEX + 1)
|
||||
#else
|
||||
#define DFU_STRING_INDEX (ADAT_CLOCK_STRING_INDEX)
|
||||
ADAT_CLOCK_STRING_INDEX,
|
||||
#endif
|
||||
|
||||
#ifdef DFU
|
||||
#define MIDI_OUT_STRING_INDEX (DFU_STRING_INDEX + 1)
|
||||
#else
|
||||
#define MIDI_OUT_STRING_INDEX (DFU_STRING_INDEX)
|
||||
DFU_STRING_INDEX,
|
||||
#endif
|
||||
|
||||
#define MIDI_IN_STRING_INDEX (MIDI_OUT_STRING_INDEX + 1)
|
||||
|
||||
#ifdef MIDI
|
||||
#define OUTPUT_INTERFACE_STRING_INDEX (MIDI_OUT_STRING_INDEX + 2)
|
||||
#else
|
||||
#define OUTPUT_INTERFACE_STRING_INDEX (MIDI_OUT_STRING_INDEX)
|
||||
MIDI_OUT_STRING_INDEX,
|
||||
MIDI_IN_STRING_INDEX,
|
||||
#endif
|
||||
|
||||
#define INPUT_INTERFACE_STRING_INDEX (OUTPUT_INTERFACE_STRING_INDEX + NUM_USB_CHAN_OUT)
|
||||
|
||||
#define MIXER_STRING_INDEX (INPUT_INTERFACE_STRING_INDEX + NUM_USB_CHAN_IN)
|
||||
|
||||
OUTPUT_INTERFACE_STRING_INDEX,
|
||||
OUTPUT_INTERFACE_LAST_STRING_INDEX = OUTPUT_INTERFACE_STRING_INDEX + NUM_USB_CHAN_OUT - 1,
|
||||
INPUT_INTERFACE_STRING_INDEX,
|
||||
INPUT_INTERFACE_LAST_STRING_INDEX = INPUT_INTERFACE_STRING_INDEX + NUM_USB_CHAN_IN - 1,
|
||||
#ifdef MIXER
|
||||
#define IAP_INTERFACE_STRING_INDEX (MIXER_STRING_INDEX + MAX_MIX_COUNT)
|
||||
#else
|
||||
#define IAP_INTERFACE_STRING_INDEX (MIXER_STRING_INDEX)
|
||||
MIXER_STRING_INDEX,
|
||||
#endif
|
||||
#ifdef IAP
|
||||
IAP_INTERFACE_STRING_INDEX,
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef HID_CONTROLS
|
||||
unsigned char hidReportDescriptor[] = {
|
||||
@@ -1394,44 +1382,8 @@ unsigned char cfgDesc_Audio2[] =
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* String table */
|
||||
#ifdef SPDIF_RX
|
||||
#define SPDIF_RX_NUM_STRS 1
|
||||
#else
|
||||
#define SPDIF_RX_NUM_STRS 0
|
||||
#endif
|
||||
|
||||
#ifdef ADAT_RX
|
||||
#define ADAT_RX_NUM_STRS 1
|
||||
#else
|
||||
#define ADAT_RX_NUM_STRS 0
|
||||
#endif
|
||||
|
||||
#ifdef MIDI
|
||||
#define MIDI_NUM_STRS 2
|
||||
#else
|
||||
#define MIDI_NUM_STRS 0
|
||||
#endif
|
||||
|
||||
#ifdef DFU
|
||||
#define DFU_NUM_STRS 1
|
||||
#else
|
||||
#define DFU_NUM_STRS 0
|
||||
#endif
|
||||
|
||||
#define STR_INDEX_OUT_CHAN (15 + SPDIF_RX_NUM_STRS + ADAT_RX_NUM_STRS + MIDI_NUM_STRS + DFU_NUM_STRS)
|
||||
#define STR_INDEX_IN_CHAN (STR_INDEX_OUT_CHAN + NUM_USB_CHAN_OUT)
|
||||
|
||||
#define APPEND_VENDOR_STR(x) VENDOR_STR" "#x
|
||||
|
||||
#define APPEND_PRODUCT_STR_A2(x) PRODUCT_STR_A2 " "#x
|
||||
@@ -1446,10 +1398,13 @@ unsigned char cfgDesc_Audio2[] =
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#define STR_USENG 0x0409
|
||||
|
||||
static unsigned char strDescs[][40] =
|
||||
{
|
||||
"Langids", // 0 LangIDs place holder
|
||||
APPEND_VENDOR_STR(), // 1 iManufacturer (at MANUFACTURER_STRING_INDEX)
|
||||
{ STR_USENG & 0xff, STR_USENG >> 8, '\0'}, // 0 LangID
|
||||
APPEND_VENDOR_STR(), // 1 iManufacturer (at MANUFACTURER_STRING_INDEX)
|
||||
|
||||
"",//SERIAL_STR, // 2 iSerialNumber (at SERIAL_STR_INDEX)
|
||||
|
||||
|
||||
@@ -100,24 +100,11 @@ unsigned g_curUsbSpeed = 0;
|
||||
extern unsigned g_iap_reset;
|
||||
#endif
|
||||
|
||||
|
||||
#define STR_USENG 0x0409
|
||||
|
||||
#define DESC_STR_LANGIDS \
|
||||
{ \
|
||||
STR_USENG & 0xff, /* 2 wLangID[0] */ \
|
||||
STR_USENG>>8, /* 3 wLangID[0] */ \
|
||||
'\0' \
|
||||
}
|
||||
|
||||
#ifdef NATIVE_DSD
|
||||
/* We remember if we are in DSD mode to avoid Configuring the DAC too often - thus avoiding pops and clicks */
|
||||
unsigned g_dsdMode = 0;
|
||||
#endif
|
||||
|
||||
/* String descriptors */
|
||||
static unsigned char strDesc_langIDs[] = DESC_STR_LANGIDS;
|
||||
|
||||
void VendorAudioRequestsInit(chanend c_audioControl, chanend ?c_mix_ctl, chanend ?c_clk_ctl);
|
||||
|
||||
/* Endpoint 0 function. Handles all requests to the device */
|
||||
@@ -193,38 +180,36 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl,
|
||||
}
|
||||
#endif
|
||||
|
||||
safememcpy(strDescs[0], strDesc_langIDs, sizeof(strDesc_langIDs));
|
||||
|
||||
/* Build up channel string table - By default all channels are marked as analogue
|
||||
* TODO We really want to do this an build time... */
|
||||
#if defined(SPDIF_RX) && (SPDIF_RX_INDEX != 0)
|
||||
safestrcpy(strDescs[SPDIF_RX_INDEX + STR_INDEX_IN_CHAN], "S/PDIF 1");
|
||||
safestrcpy(strDescs[SPDIF_RX_INDEX + STR_INDEX_IN_CHAN + 1], "S/PDIF 2");
|
||||
safestrcpy(strDescs[SPDIF_RX_INDEX + INPUT_INTERFACE_STRING_INDEX], "S/PDIF 1");
|
||||
safestrcpy(strDescs[SPDIF_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 1], "S/PDIF 2");
|
||||
#endif
|
||||
#if defined(ADAT_RX) && (ADAT_RX_INDEX != 0)
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN], "ADAT 1");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 1], "ADAT 2");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 2], "ADAT 3");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 3], "ADAT 4");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 4], "ADAT 5");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 5], "ADAT 6");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 6], "ADAT 7");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + STR_INDEX_IN_CHAN + 7], "ADAT 8");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX], "ADAT 1");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 1], "ADAT 2");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 2], "ADAT 3");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 3], "ADAT 4");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 4], "ADAT 5");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 5], "ADAT 6");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 6], "ADAT 7");
|
||||
safestrcpy(strDescs[ADAT_RX_INDEX + INPUT_INTERFACE_STRING_INDEX + 7], "ADAT 8");
|
||||
#endif
|
||||
|
||||
#if defined(SPDIF) && (SPDIF_TX_INDEX != 0) /* "Analogue naming gets priority */
|
||||
safestrcpy(strDescs[SPDIF_TX_INDEX + STR_INDEX_OUT_CHAN], "S/PDIF 1");
|
||||
safestrcpy(strDescs[SPDIF_TX_INDEX + STR_INDEX_OUT_CHAN + 1], "S/PDIF 2");
|
||||
safestrcpy(strDescs[SPDIF_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX], "S/PDIF 1");
|
||||
safestrcpy(strDescs[SPDIF_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 1], "S/PDIF 2");
|
||||
#endif
|
||||
#if defined(ADAT_TX) && (ADAT_TX_INDEX != 0)
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN], "ADAT 1");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 1], "ADAT 2");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 2], "ADAT 3");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 3], "ADAT 4");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 4], "ADAT 5");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 5], "ADAT 6");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 6], "ADAT 7");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + STR_INDEX_OUT_CHAN + 7], "ADAT 8");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX], "ADAT 1");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 1], "ADAT 2");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 2], "ADAT 3");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 3], "ADAT 4");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 4], "ADAT 5");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 5], "ADAT 6");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 6], "ADAT 7");
|
||||
safestrcpy(strDescs[ADAT_TX_INDEX + OUTPUT_INTERFACE_STRING_INDEX + 7], "ADAT 8");
|
||||
#endif
|
||||
|
||||
#ifdef VENDOR_AUDIO_REQS
|
||||
|
||||
Reference in New Issue
Block a user