5151// Application API (Multiple Interfaces)
5252// CFG_TUD_CDC > 1
5353//--------------------------------------------------------------------+
54- bool tud_cdc_n_connected (uint8_t itf );
55- uint8_t tud_cdc_n_get_line_state (uint8_t itf );
56- void tud_cdc_n_get_line_coding (uint8_t itf , cdc_line_coding_t * coding );
57- void tud_cdc_n_set_wanted_char (uint8_t itf , char wanted );
58-
59- uint32_t tud_cdc_n_available (uint8_t itf );
60- signed char tud_cdc_n_read_char (uint8_t itf );
61- uint32_t tud_cdc_n_read (uint8_t itf , void * buffer , uint32_t bufsize );
62- void tud_cdc_n_read_flush (uint8_t itf );
63- signed char tud_cdc_n_peek (uint8_t itf , int pos );
64-
65- uint32_t tud_cdc_n_write_char (uint8_t itf , char ch );
66- uint32_t tud_cdc_n_write (uint8_t itf , void const * buffer , uint32_t bufsize );
67- uint32_t tud_cdc_n_write_str (uint8_t itf , char const * str );
68- bool tud_cdc_n_write_flush (uint8_t itf );
54+ bool tud_cdc_n_connected (uint8_t itf );
55+ uint8_t tud_cdc_n_get_line_state (uint8_t itf );
56+ void tud_cdc_n_get_line_coding (uint8_t itf , cdc_line_coding_t * coding );
57+ void tud_cdc_n_set_wanted_char (uint8_t itf , char wanted );
58+
59+ uint32_t tud_cdc_n_available (uint8_t itf );
60+ uint32_t tud_cdc_n_read (uint8_t itf , void * buffer , uint32_t bufsize );
61+ void tud_cdc_n_read_flush (uint8_t itf );
62+ bool tud_cdc_n_peek (uint8_t itf , int pos , uint8_t * u8 );
63+ static inline int32_t tud_cdc_n_read_char (uint8_t itf );
64+
65+ uint32_t tud_cdc_n_write (uint8_t itf , void const * buffer , uint32_t bufsize );
66+ bool tud_cdc_n_write_flush (uint8_t itf );
67+ uint32_t tud_cdc_n_write_available (uint8_t itf );
68+ static inline uint32_t tud_cdc_n_write_char (uint8_t itf , char ch );
69+ static inline uint32_t tud_cdc_n_write_str (uint8_t itf , char const * str );
6970
7071//--------------------------------------------------------------------+
7172// Application API (Interface0)
7273//--------------------------------------------------------------------+
73- static inline bool tud_cdc_connected (void );
74- static inline uint8_t tud_cdc_get_line_state (void );
75- static inline void tud_cdc_get_line_coding (cdc_line_coding_t * coding );
76- static inline void tud_cdc_set_wanted_char (char wanted );
77-
78- static inline uint32_t tud_cdc_available (void );
79- static inline signed char tud_cdc_read_char (void );
80- static inline uint32_t tud_cdc_read (void * buffer , uint32_t bufsize );
81- static inline void tud_cdc_read_flush (void );
82- static inline signed char tud_cdc_peek (int pos );
83-
84- static inline uint32_t tud_cdc_write_char (char ch );
85- static inline uint32_t tud_cdc_write (void const * buffer , uint32_t bufsize );
86- static inline uint32_t tud_cdc_write_str (char const * str );
87- static inline bool tud_cdc_write_flush (void );
74+ static inline bool tud_cdc_connected (void );
75+ static inline uint8_t tud_cdc_get_line_state (void );
76+ static inline void tud_cdc_get_line_coding (cdc_line_coding_t * coding );
77+ static inline void tud_cdc_set_wanted_char (char wanted );
78+
79+ static inline uint32_t tud_cdc_available (void );
80+ static inline int32_t tud_cdc_read_char (void );
81+ static inline uint32_t tud_cdc_read (void * buffer , uint32_t bufsize );
82+ static inline void tud_cdc_read_flush (void );
83+ static inline bool tud_cdc_peek (int pos , uint8_t * u8 );
84+
85+ static inline uint32_t tud_cdc_write_char (char ch );
86+ static inline uint32_t tud_cdc_write (void const * buffer , uint32_t bufsize );
87+ static inline uint32_t tud_cdc_write_str (char const * str );
88+ static inline bool tud_cdc_write_flush (void );
89+ static inline uint32_t tud_cdc_write_available (void );
8890
8991//--------------------------------------------------------------------+
9092// 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
105107//--------------------------------------------------------------------+
106108// Inline Functions
107109//--------------------------------------------------------------------+
110+ static inline int32_t tud_cdc_n_read_char (uint8_t itf )
111+ {
112+ uint8_t ch ;
113+ return tud_cdc_n_read (itf , & ch , 1 ) ? (int32_t ) ch : -1 ;
114+ }
115+
116+ static inline uint32_t tud_cdc_n_write_char (uint8_t itf , char ch )
117+ {
118+ return tud_cdc_n_write (itf , & ch , 1 );
119+ }
120+
121+ static inline uint32_t tud_cdc_n_write_str (uint8_t itf , char const * str )
122+ {
123+ return tud_cdc_n_write (itf , str , strlen (str ));
124+ }
125+
108126static inline bool tud_cdc_connected (void )
109127{
110128 return tud_cdc_n_connected (0 );
@@ -130,7 +148,7 @@ static inline uint32_t tud_cdc_available (void)
130148 return tud_cdc_n_available (0 );
131149}
132150
133- static inline signed char tud_cdc_read_char (void )
151+ static inline int32_t tud_cdc_read_char (void )
134152{
135153 return tud_cdc_n_read_char (0 );
136154}
@@ -145,9 +163,9 @@ static inline void tud_cdc_read_flush (void)
145163 tud_cdc_n_read_flush (0 );
146164}
147165
148- static inline signed char tud_cdc_peek (int pos )
166+ static inline bool tud_cdc_peek (int pos , uint8_t * u8 )
149167{
150- return tud_cdc_n_peek (0 , pos );
168+ return tud_cdc_n_peek (0 , pos , u8 );
151169}
152170
153171static inline uint32_t tud_cdc_write_char (char ch )
@@ -170,18 +188,23 @@ static inline bool tud_cdc_write_flush (void)
170188 return tud_cdc_n_write_flush (0 );
171189}
172190
191+ static inline uint32_t tud_cdc_write_available (void )
192+ {
193+ return tud_cdc_n_write_available (0 );
194+ }
195+
173196/** @} */
174197/** @} */
175198
176199//--------------------------------------------------------------------+
177200// INTERNAL USBD-CLASS DRIVER API
178201//--------------------------------------------------------------------+
179- void cdcd_init (void );
180- bool cdcd_open (uint8_t rhport , tusb_desc_interface_t const * p_interface_desc , uint16_t * p_length );
181- bool cdcd_control_request (uint8_t rhport , tusb_control_request_t const * p_request );
182- bool cdcd_control_request_complete (uint8_t rhport , tusb_control_request_t const * p_request );
183- bool cdcd_xfer_cb (uint8_t rhport , uint8_t ep_addr , xfer_result_t result , uint32_t xferred_bytes );
184- void cdcd_reset ( uint8_t rhport );
202+ void cdcd_init (void );
203+ void cdcd_reset (uint8_t rhport );
204+ bool cdcd_open (uint8_t rhport , tusb_desc_interface_t const * itf_desc , uint16_t * p_length );
205+ bool cdcd_control_request (uint8_t rhport , tusb_control_request_t const * request );
206+ bool cdcd_control_complete (uint8_t rhport , tusb_control_request_t const * request );
207+ bool cdcd_xfer_cb ( uint8_t rhport , uint8_t ep_addr , xfer_result_t result , uint32_t xferred_bytes );
185208
186209#ifdef __cplusplus
187210 }
0 commit comments