@@ -33,7 +33,7 @@ tusb_desc_device_t desc_device =
3333 .bNumConfigurations = 0x01
3434};
3535
36- #define STRING_DESC_ARR_SIZE 6
36+ #define STRING_DESC_ARR_SIZE 7
3737
3838#define PRK_CONF_SIZE 64
3939
@@ -47,6 +47,7 @@ static char const *string_desc_arr[STRING_DESC_ARR_SIZE] =
4747 PRK_SERIAL , // 3: Serial
4848 "PRK CDC" , // 4: CDC Interface
4949 "PRK MSC" , // 5: MSC Interface
50+ "PRK MIDI" , // 6: MIDI Interface
5051};
5152
5253// Invoked when received GET DEVICE DESCRIPTOR
@@ -61,9 +62,9 @@ tud_descriptor_device_cb(void)
6162//--------------------------------------------------------------------+
6263
6364#ifdef PICORUBY_NO_MSC
64- #define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN + TUD_HID_INOUT_DESC_LEN + TUD_HID_DESC_LEN)
65+ #define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN + TUD_HID_INOUT_DESC_LEN + TUD_HID_DESC_LEN + TUD_MIDI_DESC_LEN )
6566#else
66- #define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN + TUD_MSC_DESC_LEN + TUD_HID_INOUT_DESC_LEN + TUD_HID_DESC_LEN)
67+ #define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_CDC_DESC_LEN + TUD_MSC_DESC_LEN + TUD_HID_INOUT_DESC_LEN + TUD_HID_DESC_LEN + TUD_MIDI_DESC_LEN )
6768#endif
6869
6970#if CFG_TUSB_MCU == OPT_MCU_LPC175X_6X || CFG_TUSB_MCU == OPT_MCU_LPC177X_8X || CFG_TUSB_MCU == OPT_MCU_LPC40XX
@@ -112,6 +113,9 @@ tud_descriptor_device_cb(void)
112113#define EPNUM_HID_IN 0x84
113114#define EPNUM_JOYSTICK_IN 0x85
114115
116+ #define EPNUM_MIDI_OUT 0x06
117+ #define EPNUM_MIDI_IN 0x86
118+
115119uint8_t const desc_hid_report [] =
116120{
117121 TUD_HID_REPORT_DESC_KEYBOARD ( HID_REPORT_ID (REPORT_ID_KEYBOARD )),
131135 ITF_NUM_CDC_DATA ,
132136 ITF_NUM_HID ,
133137 ITF_NUM_JOYSTICK ,
138+ ITF_NUM_MIDI ,
139+ ITF_NUM_MIDI_STREAMING ,
134140#ifndef PICORUBY_NO_MSC
135141 ITF_NUM_MSC ,
136142#endif
@@ -145,6 +151,9 @@ uint8_t const desc_fs_configuration[] =
145151 // Interface number, string index, EP notification address and size, EP data address (out, in) and size.
146152 TUD_CDC_DESCRIPTOR (ITF_NUM_CDC , 4 , EPNUM_CDC_NOTIF , 8 , EPNUM_CDC_OUT , EPNUM_CDC_IN , 64 ),
147153
154+ // Interface number, string index, EP Out & EP In address, EP size
155+ TUD_MIDI_DESCRIPTOR (ITF_NUM_MIDI , 6 , EPNUM_MIDI_OUT , EPNUM_MIDI_IN , 64 ),
156+
148157#ifndef PICORUBY_NO_MSC
149158 // Interface number, string index, EP Out & EP In address, EP size
150159 TUD_MSC_DESCRIPTOR (ITF_NUM_MSC , 5 , EPNUM_MSC_OUT , EPNUM_MSC_IN , 64 ),
0 commit comments