diff options
Diffstat (limited to 'ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h')
| -rw-r--r-- | ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h b/ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h index a9fffe958..5b2ffb4cf 100644 --- a/ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h +++ b/ports/stm32/usbdev/class/inc/usbd_cdc_msc_hid.h @@ -27,13 +27,6 @@ typedef struct { uint8_t datatype; } USBD_CDC_LineCodingTypeDef; -typedef struct _USBD_CDC_Itf { - int8_t (* Init) (USBD_HandleTypeDef *pdev); - int8_t (* DeInit) (void); - int8_t (* Control) (uint8_t, uint8_t * , uint16_t); - int8_t (* Receive) (USBD_HandleTypeDef *pdev, uint8_t *, uint32_t *); -} USBD_CDC_ItfTypeDef; - typedef struct { uint32_t data[CDC_DATA_FS_MAX_PACKET_SIZE/4]; /* Force 32bits alignment */ uint8_t CmdOpCode; @@ -86,6 +79,12 @@ typedef struct { uint32_t scsi_blk_len; } USBD_MSC_BOT_HandleTypeDef; +typedef struct _usbd_cdc_msc_hid_state_t { + void *cdc; + void *msc; + void *hid; +} usbd_cdc_msc_hid_state_t; + #define USBD_HID_MOUSE_MAX_PACKET (4) #define USBD_HID_MOUSE_REPORT_DESC_SIZE (74) @@ -103,7 +102,6 @@ int USBD_SelectMode(uint32_t mode, USBD_HID_ModeInfoTypeDef *hid_info); // returns the current usb mode uint8_t USBD_GetMode(); -uint8_t USBD_CDC_RegisterInterface (USBD_HandleTypeDef *pdev, USBD_CDC_ItfTypeDef *fops); uint8_t USBD_CDC_SetTxBuffer (USBD_HandleTypeDef *pdev, uint8_t *pbuff, uint16_t length); uint8_t USBD_CDC_SetRxBuffer (USBD_HandleTypeDef *pdev, uint8_t *pbuff); uint8_t USBD_CDC_ReceivePacket (USBD_HandleTypeDef *pdev); @@ -119,4 +117,10 @@ uint8_t USBD_HID_SendReport(USBD_HandleTypeDef *pdev, uint8_t *report, uint16_t uint8_t USBD_HID_SetNAK(USBD_HandleTypeDef *pdev); uint8_t USBD_HID_ClearNAK(USBD_HandleTypeDef *pdev); +// These are provided externally to implement the CDC interface +struct _usbd_cdc_itf_t; +void usbd_cdc_init(struct _usbd_cdc_itf_t *cdc, USBD_HandleTypeDef *pdev); +int8_t usbd_cdc_control(struct _usbd_cdc_itf_t *cdc, uint8_t cmd, uint8_t* pbuf, uint16_t length); +int8_t usbd_cdc_receive(struct _usbd_cdc_itf_t *cdc, uint8_t* Buf, uint32_t *Len); + #endif // _USB_CDC_MSC_CORE_H_ |
