Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers USBDevice.h Source File

USBDevice.h

00001 /* USBDevice.h */
00002 /* Generic USB device */
00003 /* Copyright (c) 2011 ARM Limited. All rights reserved. */
00004 
00005 #ifndef _USB_DEVICE_
00006 #define _USB_DEVICE_
00007 
00008 #include "mbed.h"           //for NULL
00009 #include "USBDevice_Types.h"
00010 
00011 bool USBDevice_init(void);
00012 void USBDevice_uninit(void);
00013 bool USBDevice_isConfigured(void);
00014 void USBDevice_connect(void);
00015 void USBDevice_disconnect(void);
00016 CONTROL_TRANSFER *USBDevice_getTransferPtr(void);
00017 bool USBDevice_addEndpoint(uint8_t endpoint, uint32_t maxPacket);
00018 bool USBDevice_addRateFeedbackEndpoint(uint8_t endpoint, uint32_t maxPacket);
00019 
00020 
00021 /* Endpoint events that must be implemented by device layer: */
00022 void USBDevice_EP0setup(void);
00023 void USBDevice_EP0out(void);
00024 void USBDevice_EP0in(void);
00025 
00026 /* Endpoint events that are optionally implemented by device layer: */
00027 void USBDevice_busReset(void);
00028 void USBDevice_SOF(uint16_t frameNumber);
00029 void USBDevice_connectStateChanged(unsigned int state);
00030 void USBDevice_suspendStateChanged(unsigned int state);
00031 
00032 uint8_t * USBDevice_findDescriptor(uint8_t descriptorType);
00033 
00034 class USBDevice
00035 {
00036     public:
00037         USBDevice();
00038         virtual void USBCallback_busReset(void){};
00039         virtual bool USBCallback_request(){return false;};
00040         virtual void USBCallback_requestCompleted(){};
00041         virtual bool USBCallback_setConfiguration(uint8_t configuration){return false;};
00042         
00043         virtual uint8_t * DeviceDesc();
00044         virtual uint8_t * ConfigurationDesc();
00045         virtual uint8_t * StringLangidDesc();
00046         virtual uint8_t * StringImanufacturerDesc();
00047         virtual uint8_t * StringIproductDesc();
00048         virtual uint8_t * StringIserialDesc();
00049         virtual uint8_t * StringIConfigurationDesc();
00050         virtual uint8_t * StringIinterfaceDesc();
00051         virtual uint16_t ReportDescLength(){return 0;};
00052 };
00053 
00054 
00055 void setInstanceDevice(USBDevice * _inst);
00056 
00057 
00058 #endif