diff options
| author | hathach <[email protected]> | 2019-08-01 16:28:53 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-08-01 16:28:53 +0700 |
| commit | 3f4adda5559442cd0cc73cae3b789af6c33b9583 (patch) | |
| tree | 943c809c6fbb5447e4f799b7d73feeb9da2eab1e /src/class | |
| parent | 2c2db31b095724fc8fc914f3c07641765ee0dc90 (diff) | |
| parent | f133fbbe1f3635ed77135330f48d6f1ba850b341 (diff) | |
Merge pull request #90 from hathach/develop
update from Develop
Diffstat (limited to 'src/class')
| -rw-r--r-- | src/class/cdc/cdc_device.c | 27 | ||||
| -rw-r--r-- | src/class/cdc/cdc_device.h | 81 | ||||
| -rw-r--r-- | src/class/vendor/vendor_device.c | 6 | ||||
| -rw-r--r-- | src/class/vendor/vendor_device.h | 36 |
4 files changed, 82 insertions, 68 deletions
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c index d4952d115..6da9157bd 100644 --- a/src/class/cdc/cdc_device.c +++ b/src/class/cdc/cdc_device.c @@ -121,12 +121,6 @@ uint32_t tud_cdc_n_available(uint8_t itf) return tu_fifo_count(&_cdcd_itf[itf].rx_ff);
}
-signed char tud_cdc_n_read_char(uint8_t itf)
-{
- signed char ch;
- return tud_cdc_n_read(itf, &ch, 1) ? ch : (-1);
-}
-
uint32_t tud_cdc_n_read(uint8_t itf, void* buffer, uint32_t bufsize)
{
uint32_t num_read = tu_fifo_read_n(&_cdcd_itf[itf].rx_ff, buffer, bufsize);
@@ -134,10 +128,9 @@ uint32_t tud_cdc_n_read(uint8_t itf, void* buffer, uint32_t bufsize) return num_read;
}
-signed char tud_cdc_n_peek(uint8_t itf, int pos)
+bool tud_cdc_n_peek(uint8_t itf, int pos, uint8_t* chr)
{
- signed char ch;
- return tu_fifo_peek_at(&_cdcd_itf[itf].rx_ff, pos, &ch) ? ch : (-1);
+ return tu_fifo_peek_at(&_cdcd_itf[itf].rx_ff, pos, chr);
}
void tud_cdc_n_read_flush (uint8_t itf)
@@ -149,17 +142,6 @@ void tud_cdc_n_read_flush (uint8_t itf) //--------------------------------------------------------------------+
// WRITE API
//--------------------------------------------------------------------+
-
-uint32_t tud_cdc_n_write_char(uint8_t itf, char ch)
-{
- return tud_cdc_n_write(itf, &ch, 1);
-}
-
-uint32_t tud_cdc_n_write_str (uint8_t itf, char const* str)
-{
- return tud_cdc_n_write(itf, str, strlen(str));
-}
-
uint32_t tud_cdc_n_write(uint8_t itf, void const* buffer, uint32_t bufsize)
{
uint16_t ret = tu_fifo_write_n(&_cdcd_itf[itf].tx_ff, buffer, bufsize);
@@ -190,6 +172,11 @@ bool tud_cdc_n_write_flush (uint8_t itf) return true;
}
+uint32_t tud_cdc_n_write_available (uint8_t itf)
+{
+ return tu_fifo_remaining(&_cdcd_itf[itf].tx_ff);
+}
+
//--------------------------------------------------------------------+
// USBD Driver API
diff --git a/src/class/cdc/cdc_device.h b/src/class/cdc/cdc_device.h index f1ac08e73..82932ef7d 100644 --- a/src/class/cdc/cdc_device.h +++ b/src/class/cdc/cdc_device.h @@ -51,40 +51,42 @@ // Application API (Multiple Interfaces)
// CFG_TUD_CDC > 1
//--------------------------------------------------------------------+
-bool tud_cdc_n_connected (uint8_t itf);
-uint8_t tud_cdc_n_get_line_state (uint8_t itf);
-void tud_cdc_n_get_line_coding (uint8_t itf, cdc_line_coding_t* coding);
-void tud_cdc_n_set_wanted_char (uint8_t itf, char wanted);
+bool tud_cdc_n_connected (uint8_t itf);
+uint8_t tud_cdc_n_get_line_state (uint8_t itf);
+void tud_cdc_n_get_line_coding (uint8_t itf, cdc_line_coding_t* coding);
+void tud_cdc_n_set_wanted_char (uint8_t itf, char wanted);
-uint32_t tud_cdc_n_available (uint8_t itf);
-signed char tud_cdc_n_read_char (uint8_t itf);
-uint32_t tud_cdc_n_read (uint8_t itf, void* buffer, uint32_t bufsize);
-void tud_cdc_n_read_flush (uint8_t itf);
-signed char tud_cdc_n_peek (uint8_t itf, int pos);
+uint32_t tud_cdc_n_available (uint8_t itf);
+uint32_t tud_cdc_n_read (uint8_t itf, void* buffer, uint32_t bufsize);
+void tud_cdc_n_read_flush (uint8_t itf);
+bool tud_cdc_n_peek (uint8_t itf, int pos, uint8_t* u8);
+static inline int32_t tud_cdc_n_read_char (uint8_t itf);
-uint32_t tud_cdc_n_write_char (uint8_t itf, char ch);
-uint32_t tud_cdc_n_write (uint8_t itf, void const* buffer, uint32_t bufsize);
-uint32_t tud_cdc_n_write_str (uint8_t itf, char const* str);
-bool tud_cdc_n_write_flush (uint8_t itf);
+uint32_t tud_cdc_n_write (uint8_t itf, void const* buffer, uint32_t bufsize);
+bool tud_cdc_n_write_flush (uint8_t itf);
+uint32_t tud_cdc_n_write_available (uint8_t itf);
+static inline uint32_t tud_cdc_n_write_char (uint8_t itf, char ch);
+static inline uint32_t tud_cdc_n_write_str (uint8_t itf, char const* str);
//--------------------------------------------------------------------+
// Application API (Interface0)
//--------------------------------------------------------------------+
-static inline bool tud_cdc_connected (void);
-static inline uint8_t tud_cdc_get_line_state (void);
-static inline void tud_cdc_get_line_coding (cdc_line_coding_t* coding);
-static inline void tud_cdc_set_wanted_char (char wanted);
+static inline bool tud_cdc_connected (void);
+static inline uint8_t tud_cdc_get_line_state (void);
+static inline void tud_cdc_get_line_coding (cdc_line_coding_t* coding);
+static inline void tud_cdc_set_wanted_char (char wanted);
-static inline uint32_t tud_cdc_available (void);
-static inline signed char tud_cdc_read_char (void);
-static inline uint32_t tud_cdc_read (void* buffer, uint32_t bufsize);
-static inline void tud_cdc_read_flush (void);
-static inline signed char tud_cdc_peek (int pos);
+static inline uint32_t tud_cdc_available (void);
+static inline int32_t tud_cdc_read_char (void);
+static inline uint32_t tud_cdc_read (void* buffer, uint32_t bufsize);
+static inline void tud_cdc_read_flush (void);
+static inline bool tud_cdc_peek (int pos, uint8_t* u8);
-static inline uint32_t tud_cdc_write_char (char ch);
-static inline uint32_t tud_cdc_write (void const* buffer, uint32_t bufsize);
-static inline uint32_t tud_cdc_write_str (char const* str);
-static inline bool tud_cdc_write_flush (void);
+static inline uint32_t tud_cdc_write_char (char ch);
+static inline uint32_t tud_cdc_write (void const* buffer, uint32_t bufsize);
+static inline uint32_t tud_cdc_write_str (char const* str);
+static inline bool tud_cdc_write_flush (void);
+static inline uint32_t tud_cdc_write_available (void);
//--------------------------------------------------------------------+
// Application Callback API (weak is optional)
@@ -105,6 +107,22 @@ TU_ATTR_WEAK void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* p //--------------------------------------------------------------------+
// Inline Functions
//--------------------------------------------------------------------+
+static inline int32_t tud_cdc_n_read_char (uint8_t itf)
+{
+ uint8_t ch;
+ return tud_cdc_n_read(itf, &ch, 1) ? (int32_t) ch : -1;
+}
+
+static inline uint32_t tud_cdc_n_write_char(uint8_t itf, char ch)
+{
+ return tud_cdc_n_write(itf, &ch, 1);
+}
+
+static inline uint32_t tud_cdc_n_write_str (uint8_t itf, char const* str)
+{
+ return tud_cdc_n_write(itf, str, strlen(str));
+}
+
static inline bool tud_cdc_connected (void)
{
return tud_cdc_n_connected(0);
@@ -130,7 +148,7 @@ static inline uint32_t tud_cdc_available (void) return tud_cdc_n_available(0);
}
-static inline signed char tud_cdc_read_char (void)
+static inline int32_t tud_cdc_read_char (void)
{
return tud_cdc_n_read_char(0);
}
@@ -145,9 +163,9 @@ static inline void tud_cdc_read_flush (void) tud_cdc_n_read_flush(0);
}
-static inline signed char tud_cdc_peek (int pos)
+static inline bool tud_cdc_peek (int pos, uint8_t* u8)
{
- return tud_cdc_n_peek(0, pos);
+ return tud_cdc_n_peek(0, pos, u8);
}
static inline uint32_t tud_cdc_write_char (char ch)
@@ -170,6 +188,11 @@ static inline bool tud_cdc_write_flush (void) return tud_cdc_n_write_flush(0);
}
+static inline uint32_t tud_cdc_write_available(void)
+{
+ return tud_cdc_n_write_available(0);
+}
+
/** @} */
/** @} */
diff --git a/src/class/vendor/vendor_device.c b/src/class/vendor/vendor_device.c index 33fb98470..d1ba63a9d 100644 --- a/src/class/vendor/vendor_device.c +++ b/src/class/vendor/vendor_device.c @@ -62,7 +62,6 @@ CFG_TUSB_MEM_SECTION static vendord_interface_t _vendord_itf[CFG_TUD_VENDOR]; #define ITF_MEM_RESET_SIZE offsetof(vendord_interface_t, rx_ff) - bool tud_vendor_n_mounted (uint8_t itf) { return _vendord_itf[itf].ep_in && _vendord_itf[itf].ep_out; @@ -73,6 +72,11 @@ uint32_t tud_vendor_n_available (uint8_t itf) return tu_fifo_count(&_vendord_itf[itf].rx_ff); } +bool tud_vendor_n_peek(uint8_t itf, int pos, uint8_t* u8) +{ + return tu_fifo_peek_at(&_vendord_itf[itf].rx_ff, pos, u8); +} + //--------------------------------------------------------------------+ // Read API //--------------------------------------------------------------------+ diff --git a/src/class/vendor/vendor_device.h b/src/class/vendor/vendor_device.h index d214c29ee..17fbc54ef 100644 --- a/src/class/vendor/vendor_device.h +++ b/src/class/vendor/vendor_device.h @@ -34,14 +34,6 @@ #define CFG_TUD_VENDOR_EPSIZE 64 #endif -#ifndef CFG_TUD_VENDOR_RX_BUFSIZE -#define CFG_TUD_VENDOR_RX_BUFSIZE 0 -#endif - -#ifndef CFG_TUD_VENDOR_TX_BUFSIZE -#define CFG_TUD_VENDOR_TX_BUFSIZE 0 -#endif - #ifdef __cplusplus extern "C" { #endif @@ -49,21 +41,24 @@ //--------------------------------------------------------------------+ // 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); -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); -static inline uint32_t tud_vendor_n_write_str (uint8_t itf, char const* str); +static inline +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 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); //--------------------------------------------------------------------+ // Application Callback API (weak is optional) @@ -96,6 +91,11 @@ static inline uint32_t tud_vendor_read (void* buffer, uint32_t bufsize) return tud_vendor_n_read(0, buffer, bufsize); } +static inline bool tud_vendor_peek (int pos, uint8_t* u8) +{ + return tud_vendor_n_peek(0, pos, u8); +} + static inline uint32_t tud_vendor_write (void const* buffer, uint32_t bufsize) { return tud_vendor_n_write(0, buffer, bufsize); |
