Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/class/midi/midi_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,16 @@ bool tud_midi_n_packet_write (uint8_t itf, const uint8_t packet[4]) {
return true;
}

uint32_t tud_midi_n_tx_available(uint8_t itf) {
midid_interface_t *p_midi = &_midid_itf[itf];
tu_edpt_stream_t *ep_str = &p_midi->ep_stream.tx;
return tu_edpt_stream_write_available(p_midi->rhport, ep_str);
}

uint32_t tud_midi_n_rx_available(uint8_t itf) {
return tud_midi_n_available(itf, 0);
}

uint32_t tud_midi_n_packet_write_n(uint8_t itf, const uint8_t packets[], uint32_t n_packets) {
midid_interface_t *p_midi = &_midid_itf[itf];
tu_edpt_stream_t *ep_str = &p_midi->ep_stream.tx;
Expand Down
14 changes: 14 additions & 0 deletions src/class/midi/midi_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@ bool tud_midi_n_packet_write(uint8_t itf, const uint8_t packet[4]);
// Write multiple event packets, return number of written packets
uint32_t tud_midi_n_packet_write_n(uint8_t itf, const uint8_t packets[], uint32_t n_packets);

// Get the number of bytes available for writing
uint32_t tud_midi_n_tx_available(uint8_t itf);

// Get the number of bytes available for reading
uint32_t tud_midi_n_rx_available(uint8_t itf);

//--------------------------------------------------------------------+
// Application API (Single Interface)
//--------------------------------------------------------------------+
Expand Down Expand Up @@ -117,6 +123,14 @@ TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_midi_packet_write_n(const uint8
return tud_midi_n_packet_write_n(0, packets, n_packets);
}

TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_midi_tx_available(void) {
return tud_midi_n_tx_available(0);
}

TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_midi_rx_available(void) {
return tud_midi_n_rx_available(0);
}

//--------------------------------------------------------------------+
// Internal Class Driver API
//--------------------------------------------------------------------+
Expand Down
Loading