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- int32_t 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- int32_t 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 );
69- uint32_t tud_cdc_n_write_available (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 );
7070
7171//--------------------------------------------------------------------+
7272// Application API (Interface0)
7373//--------------------------------------------------------------------+
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 int32_t tud_cdc_peek (int pos );
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 );
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 );
9090
9191//--------------------------------------------------------------------+
9292// Application Callback API (weak is optional)
@@ -107,6 +107,22 @@ TU_ATTR_WEAK void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* p
107107//--------------------------------------------------------------------+
108108// Inline Functions
109109//--------------------------------------------------------------------+
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+
110126static inline bool tud_cdc_connected (void )
111127{
112128 return tud_cdc_n_connected (0 );
@@ -147,9 +163,9 @@ static inline void tud_cdc_read_flush (void)
147163 tud_cdc_n_read_flush (0 );
148164}
149165
150- static inline int32_t tud_cdc_peek (int pos )
166+ static inline bool tud_cdc_peek (int pos , uint8_t * u8 )
151167{
152- return tud_cdc_n_peek (0 , pos );
168+ return tud_cdc_n_peek (0 , pos , u8 );
153169}
154170
155171static inline uint32_t tud_cdc_write_char (char ch )
@@ -183,12 +199,12 @@ static inline uint32_t tud_cdc_write_available(void)
183199//--------------------------------------------------------------------+
184200// INTERNAL USBD-CLASS DRIVER API
185201//--------------------------------------------------------------------+
186- void cdcd_init (void );
187- bool cdcd_open (uint8_t rhport , tusb_desc_interface_t const * p_interface_desc , uint16_t * p_length );
188- bool cdcd_control_request (uint8_t rhport , tusb_control_request_t const * p_request );
189- bool cdcd_control_request_complete (uint8_t rhport , tusb_control_request_t const * p_request );
190- bool cdcd_xfer_cb (uint8_t rhport , uint8_t ep_addr , xfer_result_t result , uint32_t xferred_bytes );
191- 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 );
192208
193209#ifdef __cplusplus
194210 }
0 commit comments