remove tud_midi_write_flush() send asap. rename tud_midi_connected() to tud_midi_mounted()

This commit is contained in:
hathach 2019-07-04 01:27:51 +07:00
parent 50f4c61d7c
commit b0e5a1a9ec
3 changed files with 17 additions and 22 deletions

View File

@ -370,7 +370,7 @@ bool cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_
uint8_t const itf = 0; uint8_t const itf = 0;
cdcd_interface_t* p_cdc = &_cdcd_itf[itf]; cdcd_interface_t* p_cdc = &_cdcd_itf[itf];
// receive new data // Received new data
if ( ep_addr == p_cdc->ep_out ) if ( ep_addr == p_cdc->ep_out )
{ {
for(uint32_t i=0; i<xferred_bytes; i++) for(uint32_t i=0; i<xferred_bytes; i++)
@ -391,7 +391,9 @@ bool cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_
_prep_out_transaction(itf); _prep_out_transaction(itf);
} }
// sent data // Data sent to host, we could continue to fetch data tx fifo to send.
// But it will cause incorrect baudrate set in line coding.
// Though maybe the baudrate is not really important !!!
// if ( ep_addr == p_cdc->ep_in ) // if ( ep_addr == p_cdc->ep_in )
// { // {
// //

View File

@ -74,7 +74,8 @@ typedef struct
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
CFG_TUSB_MEM_SECTION midid_interface_t _midid_itf[CFG_TUD_MIDI]; CFG_TUSB_MEM_SECTION midid_interface_t _midid_itf[CFG_TUD_MIDI];
bool tud_midi_n_connected(uint8_t itf) { bool tud_midi_n_mounted (uint8_t itf)
{
midid_interface_t* midi = &_midid_itf[itf]; midid_interface_t* midi = &_midid_itf[itf];
return midi->itf_num != 0; return midi->itf_num != 0;
} }
@ -126,15 +127,14 @@ void midi_rx_done_cb(midid_interface_t* midi, uint8_t const* buffer, uint32_t bu
static bool maybe_transmit(midid_interface_t* midi, uint8_t itf_index) static bool maybe_transmit(midid_interface_t* midi, uint8_t itf_index)
{ {
TU_VERIFY( !usbd_edpt_busy(TUD_OPT_RHPORT, midi->ep_in) ); // skip if previous transfer not complete TU_VERIFY( !usbd_edpt_busy(TUD_OPT_RHPORT, midi->ep_in) ); // skip if previous transfer not complete
uint16_t count = tu_fifo_read_n(&midi->tx_ff, midi->epin_buf, CFG_TUD_MIDI_EPSIZE); uint16_t count = tu_fifo_read_n(&midi->tx_ff, midi->epin_buf, CFG_TUD_MIDI_EPSIZE);
if (count > 0) if (count > 0)
{ {
TU_VERIFY( tud_midi_n_connected(itf_index) ); // fifo is empty if not connected TU_ASSERT( usbd_edpt_xfer(TUD_OPT_RHPORT, midi->ep_in, midi->epin_buf, count) );
TU_ASSERT( usbd_edpt_xfer(TUD_OPT_RHPORT, midi->ep_in, midi->epin_buf, count) ); }
} return true;
return true;
} }
uint32_t tud_midi_n_write(uint8_t itf, uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize) uint32_t tud_midi_n_write(uint8_t itf, uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize)

View File

@ -53,25 +53,23 @@
// Application API (Multiple Interfaces) // Application API (Multiple Interfaces)
// CFG_TUD_MIDI > 1 // CFG_TUD_MIDI > 1
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
bool tud_midi_n_connected (uint8_t itf); bool tud_midi_n_mounted (uint8_t itf);
uint32_t tud_midi_n_available (uint8_t itf, uint8_t jack_id); uint32_t tud_midi_n_available (uint8_t itf, uint8_t jack_id);
uint32_t tud_midi_n_read (uint8_t itf, uint8_t jack_id, void* buffer, uint32_t bufsize); uint32_t tud_midi_n_read (uint8_t itf, uint8_t jack_id, void* buffer, uint32_t bufsize);
void tud_midi_n_read_flush (uint8_t itf, uint8_t jack_id); void tud_midi_n_read_flush (uint8_t itf, uint8_t jack_id);
uint32_t tud_midi_n_write (uint8_t itf, uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize); uint32_t tud_midi_n_write (uint8_t itf, uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize);
bool tud_midi_n_write_flush (uint8_t itf);
static inline uint32_t tud_midi_n_write24 (uint8_t itf, uint8_t jack_id, uint8_t b1, uint8_t b2, uint8_t b3); static inline uint32_t tud_midi_n_write24 (uint8_t itf, uint8_t jack_id, uint8_t b1, uint8_t b2, uint8_t b3);
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Application API (Interface0) // Application API (Interface0)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
static inline bool tud_midi_connected (void); static inline bool tud_midi_mounted (void);
static inline uint32_t tud_midi_available (void); static inline uint32_t tud_midi_available (void);
static inline uint32_t tud_midi_read (void* buffer, uint32_t bufsize); static inline uint32_t tud_midi_read (void* buffer, uint32_t bufsize);
static inline void tud_midi_read_flush (void); static inline void tud_midi_read_flush (void);
static inline uint32_t tud_midi_write (uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize); static inline uint32_t tud_midi_write (uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize);
static inline uint32_t tudi_midi_write24 (uint8_t jack_id, uint8_t b1, uint8_t b2, uint8_t b3); static inline uint32_t tudi_midi_write24 (uint8_t jack_id, uint8_t b1, uint8_t b2, uint8_t b3);
static inline bool tud_midi_write_flush (void);
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Application Callback API (weak is optional) // Application Callback API (weak is optional)
@ -88,9 +86,9 @@ static inline uint32_t tud_midi_n_write24 (uint8_t itf, uint8_t jack_id, uint8_t
return tud_midi_n_write(itf, jack_id, msg, 3); return tud_midi_n_write(itf, jack_id, msg, 3);
} }
static inline bool tud_midi_connected (void) static inline bool tud_midi_mounted (void)
{ {
return tud_midi_n_connected(0); return tud_midi_n_mounted(0);
} }
static inline uint32_t tud_midi_available (void) static inline uint32_t tud_midi_available (void)
@ -119,11 +117,6 @@ static inline uint32_t tudi_midi_write24 (uint8_t jack_id, uint8_t b1, uint8_t b
return tud_midi_write(jack_id, msg, 3); return tud_midi_write(jack_id, msg, 3);
} }
static inline bool tud_midi_write_flush (void)
{
return tud_midi_n_write_flush(0);
}
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Internal Class Driver API // Internal Class Driver API
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+