Просмотр исходного кода

close #105 add tud_vendor_write_available()

hathach 6 лет назад
Родитель
Сommit
b7dbc98ab1
2 измененных файлов с 26 добавлено и 12 удалено
  1. 5 0
      src/class/vendor/vendor_device.c
  2. 21 12
      src/class/vendor/vendor_device.h

+ 5 - 0
src/class/vendor/vendor_device.c

@@ -125,6 +125,11 @@ uint32_t tud_vendor_n_write (uint8_t itf, void const* buffer, uint32_t bufsize)
   return ret;
 }
 
+uint32_t tud_vendor_n_write_available (uint8_t itf)
+{
+  return tu_fifo_remaining(&_vendord_itf[itf].tx_ff);
+}
+
 //--------------------------------------------------------------------+
 // USBD Driver API
 //--------------------------------------------------------------------+

+ 21 - 12
src/class/vendor/vendor_device.h

@@ -41,24 +41,28 @@
 //--------------------------------------------------------------------+
 // Application API (Multiple Interfaces)
 //--------------------------------------------------------------------+
-bool     tud_vendor_n_mounted   (uint8_t itf);
-uint32_t tud_vendor_n_available (uint8_t itf);
-uint32_t tud_vendor_n_read      (uint8_t itf, void* buffer, uint32_t bufsize);
-bool     tud_vendor_n_peek      (uint8_t itf, int pos, uint8_t* u8);
-uint32_t tud_vendor_n_write     (uint8_t itf, void const* buffer, uint32_t bufsize);
+bool     tud_vendor_n_mounted         (uint8_t itf);
+
+uint32_t tud_vendor_n_available       (uint8_t itf);
+uint32_t tud_vendor_n_read            (uint8_t itf, void* buffer, uint32_t bufsize);
+bool     tud_vendor_n_peek            (uint8_t itf, int pos, uint8_t* u8);
+
+uint32_t tud_vendor_n_write           (uint8_t itf, void const* buffer, uint32_t bufsize);
+uint32_t tud_vendor_n_write_available (uint8_t itf);
 
 static inline
-uint32_t tud_vendor_n_write_str (uint8_t itf, char const* str);
+uint32_t tud_vendor_n_write_str       (uint8_t itf, char const* str);
 
 //--------------------------------------------------------------------+
 // Application API (Single Port)
 //--------------------------------------------------------------------+
-static inline bool     tud_vendor_mounted   (void);
-static inline uint32_t tud_vendor_available (void);
-static inline uint32_t tud_vendor_read      (void* buffer, uint32_t bufsize);
-static inline bool     tud_vendor_peek      (int pos, uint8_t* u8);
-static inline uint32_t tud_vendor_write     (void const* buffer, uint32_t bufsize);
-static inline uint32_t tud_vendor_write_str (char const* str);
+static inline bool     tud_vendor_mounted         (void);
+static inline uint32_t tud_vendor_available       (void);
+static inline uint32_t tud_vendor_read            (void* buffer, uint32_t bufsize);
+static inline bool     tud_vendor_peek            (int pos, uint8_t* u8);
+static inline uint32_t tud_vendor_write           (void const* buffer, uint32_t bufsize);
+static inline uint32_t tud_vendor_write_str       (char const* str);
+static inline uint32_t tud_vendor_write_available (void);
 
 //--------------------------------------------------------------------+
 // Application Callback API (weak is optional)
@@ -106,6 +110,11 @@ static inline uint32_t tud_vendor_write_str (char const* str)
   return tud_vendor_n_write_str(0, str);
 }
 
+static inline uint32_t tud_vendor_write_available (void)
+{
+  return tud_vendor_n_write_available(0);
+}
+
 //--------------------------------------------------------------------+
 // Internal Class Driver API
 //--------------------------------------------------------------------+