diff options
Diffstat (limited to 'src/class')
| -rw-r--r-- | src/class/cdc/cdc_device.c | 6 | ||||
| -rw-r--r-- | src/class/midi/midi_device.c | 18 | ||||
| -rw-r--r-- | src/class/midi/midi_device.h | 15 |
3 files changed, 17 insertions, 22 deletions
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index 464936793..6d13dafc0 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -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;
cdcd_interface_t* p_cdc = &_cdcd_itf[itf];
- // receive new data
+ // Received new data
if ( ep_addr == p_cdc->ep_out )
{
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);
}
- // 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 )
// {
//
diff --git a/src/class/midi/midi_device.c b/src/class/midi/midi_device.c index fbfbcae01..76776d71c 100644 --- a/src/class/midi/midi_device.c +++ b/src/class/midi/midi_device.c @@ -74,7 +74,8 @@ typedef struct //--------------------------------------------------------------------+
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];
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)
{
- 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);
- 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) );
- }
- return true;
+ uint16_t count = tu_fifo_read_n(&midi->tx_ff, midi->epin_buf, CFG_TUD_MIDI_EPSIZE);
+ if (count > 0)
+ {
+ TU_ASSERT( usbd_edpt_xfer(TUD_OPT_RHPORT, midi->ep_in, midi->epin_buf, count) );
+ }
+ return true;
}
uint32_t tud_midi_n_write(uint8_t itf, uint8_t jack_id, uint8_t const* buffer, uint32_t bufsize)
diff --git a/src/class/midi/midi_device.h b/src/class/midi/midi_device.h index 10af21276..939c8c6e1 100644 --- a/src/class/midi/midi_device.h +++ b/src/class/midi/midi_device.h @@ -53,25 +53,23 @@ // Application API (Multiple Interfaces)
// 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_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);
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);
//--------------------------------------------------------------------+
// 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_read (void* buffer, uint32_t bufsize);
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 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)
@@ -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);
}
-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)
@@ -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);
}
-static inline bool tud_midi_write_flush (void)
-{
- return tud_midi_n_write_flush(0);
-}
-
//--------------------------------------------------------------------+
// Internal Class Driver API
//--------------------------------------------------------------------+
|
