forked from PAWPAW-Mirror/lib_xua
Use standard functions and different empty strings
This commit is contained in:
@@ -231,24 +231,15 @@ void XUA_Endpoint0_setVendorId(unsigned short vid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer) {
|
void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer) {
|
||||||
uint32_t string_size = MIN(strlen(string1), XUA_MAX_STR_LEN-1);
|
uint32_t remaining_buffer_size = MIN(strlen(string1), XUA_MAX_STR_LEN-1);
|
||||||
|
strncpy(string_buffer, string1, remaining_buffer_size);
|
||||||
memset(string_buffer, 0, XUA_MAX_STR_LEN);
|
|
||||||
memcpy(string_buffer, string1, string_size);
|
|
||||||
|
|
||||||
|
|
||||||
if (string_size==XUA_MAX_STR_LEN-1) {
|
|
||||||
string_buffer[XUA_MAX_STR_LEN-1] = '\0';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
uint32_t total_string_size = MIN(strlen(string1)+strlen(string2), XUA_MAX_STR_LEN-1);
|
uint32_t total_string_size = MIN(strlen(string1)+strlen(string2), XUA_MAX_STR_LEN-1);
|
||||||
if (total_string_size==XUA_MAX_STR_LEN-1) {
|
if (total_string_size==XUA_MAX_STR_LEN-1) {
|
||||||
string_size = XUA_MAX_STR_LEN-1-strlen(string1);
|
remaining_buffer_size = XUA_MAX_STR_LEN-1-strlen(string1);
|
||||||
} else {
|
} else {
|
||||||
string_size = strlen(string1);
|
remaining_buffer_size = strlen(string1);
|
||||||
}
|
}
|
||||||
memcpy(string_buffer+strlen(string1), string2, string_size);
|
strncat(string_buffer, string2, remaining_buffer_size);
|
||||||
string_buffer[total_string_size] = '\0';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void XUA_Endpoint0_setStrTable() {
|
void XUA_Endpoint0_setStrTable() {
|
||||||
|
|||||||
@@ -28,8 +28,22 @@
|
|||||||
|
|
||||||
#define STR_TABLE_ENTRY(name) char * name
|
#define STR_TABLE_ENTRY(name) char * name
|
||||||
|
|
||||||
// XUA_DESCR_EMPTY_STRING is used in the g_strTable to set the maximum size of the table entries
|
// The empty strings below are used in the g_strTable to set the maximum size of the table entries
|
||||||
#define XUA_DESCR_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
#define XUA_VENDOR_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_PRODUCT_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_OUTPUT_INTERFACE_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_INPUT_INTERFACE_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_INPUT_TERM_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_OUTPUT_TERM_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_CLOCK_SELECTOR_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_INTERNAL_CLOCK_SELECTOR_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_SPDIF_CLOCK_SOURCE_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_ADAT_CLOCK_SOURCE_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_DFU_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_CTRL_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_MIDI_OUT_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
#define XUA_MIDI_IN_EMPTY_STRING "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
|
||||||
|
|
||||||
// The value below must match the length of XUA_DESCR_EMPTY_STRING.
|
// The value below must match the length of XUA_DESCR_EMPTY_STRING.
|
||||||
#define XUA_MAX_STR_LEN (32)
|
#define XUA_MAX_STR_LEN (32)
|
||||||
|
|
||||||
@@ -322,42 +336,42 @@ typedef struct
|
|||||||
StringDescTable_t g_strTable =
|
StringDescTable_t g_strTable =
|
||||||
{
|
{
|
||||||
.langID = "\x09\x04", /* US English */
|
.langID = "\x09\x04", /* US English */
|
||||||
.vendorStr = XUA_DESCR_EMPTY_STRING,//VENDOR_STR,
|
.vendorStr = XUA_VENDOR_EMPTY_STRING,
|
||||||
.serialStr = "",
|
.serialStr = "",
|
||||||
#if (AUDIO_CLASS == 2)
|
#if (AUDIO_CLASS == 2)
|
||||||
.productStr_Audio2 = XUA_DESCR_EMPTY_STRING,
|
.productStr_Audio2 = XUA_PRODUCT_EMPTY_STRING,
|
||||||
.outputInterfaceStr_Audio2 = XUA_DESCR_EMPTY_STRING,
|
.outputInterfaceStr_Audio2 = XUA_OUTPUT_INTERFACE_EMPTY_STRING,
|
||||||
.inputInterfaceStr_Audio2 = XUA_DESCR_EMPTY_STRING,
|
.inputInterfaceStr_Audio2 = XUA_INPUT_INTERFACE_EMPTY_STRING,
|
||||||
.usbInputTermStr_Audio2 = XUA_DESCR_EMPTY_STRING,
|
.usbInputTermStr_Audio2 = XUA_INPUT_TERM_EMPTY_STRING,
|
||||||
.usbOutputTermStr_Audio2 = XUA_DESCR_EMPTY_STRING,
|
.usbOutputTermStr_Audio2 = XUA_OUTPUT_TERM_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#if (AUDIO_CLASS_FALLBACK) || (AUDIO_CLASS == 1)
|
#if (AUDIO_CLASS_FALLBACK) || (AUDIO_CLASS == 1)
|
||||||
|
|
||||||
.productStr_Audio1 = XUA_DESCR_EMPTY_STRING,
|
.productStr_Audio1 = XUA_PRODUCT_EMPTY_STRING,
|
||||||
.outputInterfaceStr_Audio1 = XUA_DESCR_EMPTY_STRING,
|
.outputInterfaceStr_Audio1 = XUA_OUTPUT_INTERFACE_EMPTY_STRING,
|
||||||
.inputInterfaceStr_Audio1 = XUA_DESCR_EMPTY_STRING,
|
.inputInterfaceStr_Audio1 = XUA_INPUT_INTERFACE_EMPTY_STRING,
|
||||||
.usbInputTermStr_Audio1 = XUA_DESCR_EMPTY_STRING,
|
.usbInputTermStr_Audio1 = XUA_INPUT_TERM_EMPTY_STRING,
|
||||||
.usbOutputTermStr_Audio1 = XUA_DESCR_EMPTY_STRING,
|
.usbOutputTermStr_Audio1 = XUA_OUTPUT_TERM_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#if (AUDIO_CLASS == 2)
|
#if (AUDIO_CLASS == 2)
|
||||||
.clockSelectorStr = XUA_DESCR_EMPTY_STRING,
|
.clockSelectorStr = XUA_CLOCK_SELECTOR_EMPTY_STRING,
|
||||||
.internalClockSourceStr = XUA_DESCR_EMPTY_STRING,
|
.internalClockSourceStr = XUA_INTERNAL_CLOCK_SELECTOR_EMPTY_STRING,
|
||||||
#if SPDIF_RX
|
#if SPDIF_RX
|
||||||
.spdifClockSourceStr = XUA_DESCR_EMPTY_STRING,
|
.spdifClockSourceStr = XUA_SPDIF_CLOCK_SOURCE_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#if ADAT_RX
|
#if ADAT_RX
|
||||||
.adatClockSourceStr = XUA_DESCR_EMPTY_STRING,
|
.adatClockSourceStr = XUA_ADAT_CLOCK_SOURCE_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if (XUA_DFU_EN == 1)
|
#if (XUA_DFU_EN == 1)
|
||||||
.dfuStr = XUA_DESCR_EMPTY_STRING,
|
.dfuStr = XUA_DFU_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#ifdef USB_CONTROL_DESCS
|
#ifdef USB_CONTROL_DESCS
|
||||||
.ctrlStr = XUA_DESCR_EMPTY_STRING,
|
.ctrlStr = XUA_CTRL_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
#ifdef MIDI
|
#ifdef MIDI
|
||||||
.midiOutStr = XUA_DESCR_EMPTY_STRING,
|
.midiOutStr = XUA_MIDI_OUT_EMPTY_STRING,
|
||||||
.midiInStr = XUA_DESCR_EMPTY_STRING,
|
.midiInStr = XUA_MIDI_IN_EMPTY_STRING,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "chanstrings.h"
|
#include "chanstrings.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user