diff options
Diffstat (limited to 'libmaple/usb/usb_callbacks.h')
-rw-r--r-- | libmaple/usb/usb_callbacks.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/libmaple/usb/usb_callbacks.h b/libmaple/usb/usb_callbacks.h new file mode 100644 index 0000000..f8a2ef3 --- /dev/null +++ b/libmaple/usb/usb_callbacks.h @@ -0,0 +1,74 @@ +/* insert license */ + +#ifndef __USB_CALLBACKS +#define __USB_CALLBACKS + +#include "libmaple.h" +#include "usb_lib.h" +#include "usb_config.h" + +#define SET_LINE_CODING 0x20 +#define GET_LINE_CODING 0x21 +#define SET_COMM_FEATURE 0x02 +#define SET_CONTROL_LINE_STATE 0x22 +#define CONTROL_LINE_DTR (0x01) +#define CONTROL_LINE_RTS (0x02) + +#if defined(__cplusplus) +extern "C" { +#endif + +typedef struct { + uint32 bitrate; + uint8 format; + uint8 paritytype; + uint8 datatype; +} USB_Line_Coding; + +typedef enum { + START, + NDTR_NRTS, + DTR_NRTS, + RESET_NEXT, + RESET_NOW +} RESET_STATE; + +extern RESET_STATE reset_state; /* tracks DTR/RTS */ +extern uint8 countTx; +extern uint8 vcomBufferRx[VCOM_RX_EPSIZE]; /* no reason this has to be VCOM_RX_EPSIZE, could be bigger */ +extern uint8 recvBufIn; /* the FIFO in index to the recvbuffer */ +extern uint8 recvBufOut; /* the FIFO out index to the recvbuffer */ +extern uint8 maxNewBytes; + +void vcomDataTxCb(void); +void vcomDataRxCb(void); +void vcomManagementCb(void); + +uint8* vcomGetSetLineCoding(uint16 length); +void vcomSetLineSate(void); + +void usbInit(void); +/* internal functions (as per the usb_core pProperty structure) */ +void usbInit(void); +void usbReset(void); +void usbStatusIn(void); +void usbStatusOut(void); + +RESULT usbDataSetup(uint8 request); +RESULT usbNoDataSetup(uint8 request); +RESULT usbGetInterfaceSetting(uint8,uint8); + +uint8* usbGetDeviceDescriptor(uint16 length); +uint8* usbGetConfigDescriptor(uint16 length); +uint8* usbGetStringDescriptor(uint16 length); + +/* internal callbacks to respond to standard requests */ +void usbSetConfiguration(void); +void usbSetDeviceAddress(void); + +#if defined(__cplusplus) +} +#endif + + +#endif |