#pragma once

#define CH32X035_ESIG_UNIID1    0x1FFFF7E8
#define CH32X035_ESIG_UNIID2    0x1FFFF7EC
#define CH32X035_ESIG_UNIID3    0x1FFFF7F0

#define WCH_USBMIDI_MANUF_STR            "WCH"
#define WCH_USBMIDI_PROD_STR             "CH32X035-MIDI"
#define WCH_USBMIDI_INTERF_STR           "USBMIDI"
#define WCH_USBMIDI_SERIAL_PREFIX        "MD"

#define STR_LEN(s) (sizeof(s) - 1)

#define WCH_USBMIDI_MANUF_LEN            STR_LEN(WCH_USBMIDI_MANUF_STR)
#define WCH_USBMIDI_PROD_LEN             STR_LEN(WCH_USBMIDI_PROD_STR)  
#define WCH_USBMIDI_INTERF_LEN           STR_LEN(WCH_USBMIDI_INTERF_STR)
#define WCH_USBMIDI_SERIAL_PREFIX_LEN    STR_LEN(WCH_USBMIDI_SERIAL_PREFIX)
#define WCH_USBMIDI_UID_HEX_CHARS        24
#define WCH_USBMIDI_SERIAL_LEN           (WCH_USBMIDI_SERIAL_PREFIX_LEN + WCH_USBMIDI_UID_HEX_CHARS)

#define WCH_USBMIDI_VENDOR_ID        0x16C0
#define WCH_USBMIDI_PRODUCT_ID       0x27DD
#define WCH_USBMIDI_DEVICE_VERSION   0x0100
#define WCH_USBMIDI_LANGUAGE         0x0409
#define WCH_USBMIDI_MAX_POWER_mA     100