소스 검색

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

hathach 6 년 전
부모
커밋
b0e5a1a9ec
3개의 변경된 파일17개의 추가작업 그리고 22개의 파일을 삭제
  1. 4 2
      src/class/cdc/cdc_device.c
  2. 9 9
      src/class/midi/midi_device.c
  3. 4 11
      src/class/midi/midi_device.h

+ 4 - 2
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 )
 //  {
 //

+ 9 - 9
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)

+ 4 - 11
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
 //--------------------------------------------------------------------+