summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-02-24 12:42:45 +0700
committerhathach <[email protected]>2025-02-24 14:40:32 +0700
commit56e84bd1a605e3835f29e2e7fd17f65e0f3b5431 (patch)
tree324c5656754b2d447e5db41c5aa5f1bbae9977d8
parent8c70475c23233e70652c5852088fc539bfb337ad (diff)
add desc_audio_control to midi descriptor callback
-rw-r--r--examples/host/midi_rx/src/main.c2
-rw-r--r--examples/host/midi_rx/src/tusb_config.h2
-rw-r--r--src/class/midi/midi_host.c7
-rw-r--r--src/class/midi/midi_host.h5
4 files changed, 8 insertions, 8 deletions
diff --git a/examples/host/midi_rx/src/main.c b/examples/host/midi_rx/src/main.c
index a8a5b40ca..6db329ab5 100644
--- a/examples/host/midi_rx/src/main.c
+++ b/examples/host/midi_rx/src/main.c
@@ -106,8 +106,8 @@ void tuh_midi_rx_cb(uint8_t idx, uint32_t num_packets) {
return;
}
- uint8_t cable_num;
uint8_t buffer[48];
+ uint8_t cable_num = 0;
uint32_t bytes_read = tuh_midi_stream_read(idx, &cable_num, buffer, sizeof(buffer));
printf("Cable %u rx %lu bytes: ", cable_num, bytes_read);
diff --git a/examples/host/midi_rx/src/tusb_config.h b/examples/host/midi_rx/src/tusb_config.h
index 24b3b3ae6..c9b430388 100644
--- a/examples/host/midi_rx/src/tusb_config.h
+++ b/examples/host/midi_rx/src/tusb_config.h
@@ -111,8 +111,6 @@ extern "C" {
#define CFG_TUH_DEVICE_MAX (3*CFG_TUH_HUB + 1)
#define CFG_TUH_MIDI CFG_TUH_DEVICE_MAX
-#define CFG_MIDI_HOST_DEVSTRINGS 1
-
#ifdef __cplusplus
}
#endif
diff --git a/src/class/midi/midi_host.c b/src/class/midi/midi_host.c
index 8fb325c2b..770a39a8d 100644
--- a/src/class/midi/midi_host.c
+++ b/src/class/midi/midi_host.c
@@ -227,9 +227,10 @@ bool midih_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *d
p_desc = tu_desc_next(p_desc);
TU_VERIFY(tu_desc_type(p_desc) == TUSB_DESC_CS_INTERFACE &&
tu_desc_subtype(p_desc) == AUDIO_CS_AC_INTERFACE_HEADER);
+ desc_cb.desc_audio_control = desc_itf;
p_desc = tu_desc_next(p_desc);
- desc_itf = (tusb_desc_interface_t const *)p_desc;
+ desc_itf = (const tusb_desc_interface_t *)p_desc;
TU_VERIFY(TUSB_CLASS_AUDIO == desc_itf->bInterfaceClass);
p_midi->itf_count = 1;
}
@@ -238,7 +239,7 @@ bool midih_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *d
TU_LOG_DRV("MIDI opening Interface %u (addr = %u)\r\n", desc_itf->bInterfaceNumber, dev_addr);
p_midi->bInterfaceNumber = desc_itf->bInterfaceNumber;
p_midi->itf_count++;
- desc_cb.desc_interface = desc_itf;
+ desc_cb.desc_midi = desc_itf;
p_desc = tu_desc_next(p_desc); // next to CS Header
@@ -305,7 +306,7 @@ bool midih_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *d
}
p_desc = tu_desc_next(p_desc);
}
- desc_cb.desc_interface_len = (uint16_t) ((uintptr_t)p_desc - (uintptr_t) desc_itf);
+ desc_cb.desc_midi_total_len = (uint16_t) ((uintptr_t)p_desc - (uintptr_t) desc_itf);
p_midi->daddr = dev_addr;
diff --git a/src/class/midi/midi_host.h b/src/class/midi/midi_host.h
index c9780a9e4..717e6ba67 100644
--- a/src/class/midi/midi_host.h
+++ b/src/class/midi/midi_host.h
@@ -63,8 +63,9 @@
// Application API
//--------------------------------------------------------------------+
typedef struct {
- const tusb_desc_interface_t* desc_interface; // start of whole midi interface descriptor
- uint16_t desc_interface_len;
+ const tusb_desc_interface_t* desc_audio_control;
+ const tusb_desc_interface_t* desc_midi; // start of whole midi interface descriptor
+ uint16_t desc_midi_total_len;
const uint8_t* desc_header;
const uint8_t* desc_element;