diff --git a/libraries/USB/examples/MIDI/MidiController/MidiController.ino b/libraries/USB/examples/MIDI/MidiController/MidiController.ino index 2871d3b1a52..9cdd8a805de 100644 --- a/libraries/USB/examples/MIDI/MidiController/MidiController.ino +++ b/libraries/USB/examples/MIDI/MidiController/MidiController.ino @@ -20,7 +20,8 @@ void loop() {} #include "USB.h" #include "USBMIDI.h" -USBMIDI MIDI; +// Creates the MIDI device with specific descriptor +USBMIDI MIDI("ESP MIDI Device"); #define MIDI_NOTE_C4 60 diff --git a/libraries/USB/examples/MIDI/MidiInterface/MidiInterface.ino b/libraries/USB/examples/MIDI/MidiInterface/MidiInterface.ino index e3ad1c4e028..0abc2aad2d1 100644 --- a/libraries/USB/examples/MIDI/MidiInterface/MidiInterface.ino +++ b/libraries/USB/examples/MIDI/MidiInterface/MidiInterface.ino @@ -26,7 +26,9 @@ void loop() {} #include "USB.h" #include "USBMIDI.h" -USBMIDI MIDI; +// Creates the MIDI device with specific descriptor +USBMIDI MIDI("ESP MIDI Device"); + #define MIDI_RX 39 #define MIDI_TX 40 diff --git a/libraries/USB/src/USBMIDI.cpp b/libraries/USB/src/USBMIDI.cpp index 8a9571855e1..407638f2d7d 100644 --- a/libraries/USB/src/USBMIDI.cpp +++ b/libraries/USB/src/USBMIDI.cpp @@ -11,14 +11,14 @@ static bool tinyusb_midi_descriptor_loaded = false; static bool tinyusb_midi_interface_enabled = false; +static String deviceDescriptor(""); extern "C" uint16_t tusb_midi_load_descriptor(uint8_t *dst, uint8_t *itf) { if (tinyusb_midi_descriptor_loaded) { return 0; } tinyusb_midi_descriptor_loaded = true; - - uint8_t str_index = tinyusb_add_string_descriptor("TinyUSB MIDI"); + uint8_t str_index = tinyusb_add_string_descriptor(deviceDescriptor.c_str()); uint8_t ep_in = tinyusb_get_free_in_endpoint(); TU_VERIFY(ep_in != 0); uint8_t ep_out = tinyusb_get_free_out_endpoint(); @@ -32,9 +32,10 @@ extern "C" uint16_t tusb_midi_load_descriptor(uint8_t *dst, uint8_t *itf) { return TUD_MIDI_DESC_LEN; } -USBMIDI::USBMIDI() { +USBMIDI::USBMIDI(String devDescName) { if (!tinyusb_midi_interface_enabled) { tinyusb_midi_interface_enabled = true; + deviceDescriptor = devDescName; tinyusb_enable_interface(USB_INTERFACE_MIDI, TUD_MIDI_DESC_LEN, tusb_midi_load_descriptor); } else { log_e("USBMIDI: Multiple instances of USBMIDI not supported!"); diff --git a/libraries/USB/src/USBMIDI.h b/libraries/USB/src/USBMIDI.h index 91a1bfa4be1..a1071ce5188 100644 --- a/libraries/USB/src/USBMIDI.h +++ b/libraries/USB/src/USBMIDI.h @@ -19,7 +19,7 @@ typedef struct { class USBMIDI { public: - USBMIDI(void); + USBMIDI(String devDescName = "TinyUSB MIDI"); void begin(void); void end(void);