diff --git a/src/common/tusb_types.h b/src/common/tusb_types.h index c3ed4f2b..ee9e849b 100644 --- a/src/common/tusb_types.h +++ b/src/common/tusb_types.h @@ -416,9 +416,14 @@ static inline uint8_t descriptor_len(uint8_t const p_desc[]) return p_desc[DESC_OFFSET_LEN]; } +// Length of the string descriptors in bytes with slen characters +#define TUD_DESC_STRLEN(_slen) (2*(_slen) + 2) + +// Header of string descriptors with len + string type +#define TUD_DESC_STR_HEADER(_slen) ( (uint16_t) ( (TUSB_DESC_STRING << 8 ) | TUD_DESC_STRLEN(_slen)) ) // Convert comma-separated string to descriptor unicode format -#define TUD_DESC_STRCONV( ... ) (const uint16_t[]) { (TUSB_DESC_STRING << 8 ) | (2*VA_ARGS_NUM_(__VA_ARGS__) + 2), __VA_ARGS__ } +#define TUD_DESC_STRCONV( ... ) (const uint16_t[]) { TUD_DESC_STR_HEADER(VA_ARGS_NUM_(__VA_ARGS__)), __VA_ARGS__ } #ifdef __cplusplus }