summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2026-05-17 14:35:34 +0200
committerHiFiPhile <[email protected]>2026-05-17 14:35:34 +0200
commite00ac15b7f31be28ff888a5220cbde93a61c17f4 (patch)
treef545e4740e1be1fa96cd14f9633bd3a6190e77e3 /src/class
parent3f209e2a00538726992ba908fe905213c78a9f6e (diff)
midi2: use hwfifo if supported
Signed-off-by: HiFiPhile <[email protected]>
Diffstat (limited to 'src/class')
-rw-r--r--src/class/midi/midi2_device.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/class/midi/midi2_device.c b/src/class/midi/midi2_device.c
index a005c8e51..360d70967 100644
--- a/src/class/midi/midi2_device.c
+++ b/src/class/midi/midi2_device.c
@@ -114,12 +114,15 @@ TU_VERIFY_STATIC(CFG_TUD_MIDI2_NUM_FUNCTION_BLOCKS >= 1 && CFG_TUD_MIDI2_NUM_FUN
static midi2d_interface_t _midi2d_itf[CFG_TUD_MIDI2];
+// Skip local EP buffer if dedicated hw FIFO is supported
+#if CFG_TUD_EDPT_DEDICATED_HWFIFO == 0
typedef struct {
TUD_EPBUF_DEF(epin, CFG_TUD_MIDI2_TX_EPSIZE);
TUD_EPBUF_DEF(epout, CFG_TUD_MIDI2_RX_EPSIZE);
} midi2d_epbuf_t;
CFG_TUD_MEM_SECTION static midi2d_epbuf_t _midi2d_epbuf[CFG_TUD_MIDI2];
+#endif
// Default Group Terminal Block descriptor (USB-MIDI 2.0 spec, Table 5-5/5-6)
static const uint8_t _default_gtb_desc[] = {
@@ -406,9 +409,13 @@ void midi2d_init(void) {
midi2d_interface_t* p_midi = &_midi2d_itf[i];
p_midi->protocol = MIDI_PROTOCOL_MIDI2;
- midi2d_epbuf_t* p_epbuf = &_midi2d_epbuf[i];
- uint8_t* epout_buf = p_epbuf->epout;
- uint8_t* epin_buf = p_epbuf->epin;
+ #if CFG_TUD_EDPT_DEDICATED_HWFIFO
+ uint8_t *epout_buf = NULL;
+ uint8_t *epin_buf = NULL;
+ #else
+ uint8_t *epout_buf = _midi2d_epbuf[i].epout;
+ uint8_t *epin_buf = _midi2d_epbuf[i].epin;
+ #endif
tu_edpt_stream_init(&p_midi->ep_stream.rx, false, false, false,
p_midi->ep_stream.rx_ff_buf, CFG_TUD_MIDI2_RX_BUFSIZE, epout_buf);