Webcam Server.

Dependencies:   uvchost FatFileSystem mbed HTTPServer NetServicesMin

Committer:
va009039
Date:
Wed Jun 06 11:47:06 2012 +0000
Revision:
0:2b4ea8a138e5

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:2b4ea8a138e5 1
va009039 0:2b4ea8a138e5 2 /*
va009039 0:2b4ea8a138e5 3 Copyright (c) 2010 Donatien Garnier (donatiengar [at] gmail [dot] com)
va009039 0:2b4ea8a138e5 4
va009039 0:2b4ea8a138e5 5 Permission is hereby granted, free of charge, to any person obtaining a copy
va009039 0:2b4ea8a138e5 6 of this software and associated documentation files (the "Software"), to deal
va009039 0:2b4ea8a138e5 7 in the Software without restriction, including without limitation the rights
va009039 0:2b4ea8a138e5 8 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
va009039 0:2b4ea8a138e5 9 copies of the Software, and to permit persons to whom the Software is
va009039 0:2b4ea8a138e5 10 furnished to do so, subject to the following conditions:
va009039 0:2b4ea8a138e5 11
va009039 0:2b4ea8a138e5 12 The above copyright notice and this permission notice shall be included in
va009039 0:2b4ea8a138e5 13 all copies or substantial portions of the Software.
va009039 0:2b4ea8a138e5 14
va009039 0:2b4ea8a138e5 15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
va009039 0:2b4ea8a138e5 16 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
va009039 0:2b4ea8a138e5 17 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
va009039 0:2b4ea8a138e5 18 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
va009039 0:2b4ea8a138e5 19 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
va009039 0:2b4ea8a138e5 20 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
va009039 0:2b4ea8a138e5 21 THE SOFTWARE.
va009039 0:2b4ea8a138e5 22 */
va009039 0:2b4ea8a138e5 23
va009039 0:2b4ea8a138e5 24 #ifndef USB_DEVICE_H
va009039 0:2b4ea8a138e5 25 #define USB_DEVICE_H
va009039 0:2b4ea8a138e5 26
va009039 0:2b4ea8a138e5 27 #include "mbed.h"
va009039 0:2b4ea8a138e5 28 #include "UsbInc.h"
va009039 0:2b4ea8a138e5 29 #include "UsbEndpoint.h"
va009039 0:2b4ea8a138e5 30 #include "UsbHostMgr.h"
va009039 0:2b4ea8a138e5 31
va009039 0:2b4ea8a138e5 32 class UsbHostMgr;
va009039 0:2b4ea8a138e5 33 class UsbEndpoint;
va009039 0:2b4ea8a138e5 34
va009039 0:2b4ea8a138e5 35 class UsbDevice
va009039 0:2b4ea8a138e5 36 {
va009039 0:2b4ea8a138e5 37 protected:
va009039 0:2b4ea8a138e5 38 UsbDevice( UsbHostMgr* pMgr, int hub, int port, int addr );
va009039 0:2b4ea8a138e5 39 ~UsbDevice();
va009039 0:2b4ea8a138e5 40
va009039 0:2b4ea8a138e5 41 UsbErr enumerate();
va009039 0:2b4ea8a138e5 42
va009039 0:2b4ea8a138e5 43 public:
va009039 0:2b4ea8a138e5 44 bool connected();
va009039 0:2b4ea8a138e5 45 bool enumerated();
va009039 0:2b4ea8a138e5 46
va009039 0:2b4ea8a138e5 47 int getPid();
va009039 0:2b4ea8a138e5 48 int getVid();
va009039 0:2b4ea8a138e5 49
va009039 0:2b4ea8a138e5 50 //UsbErr getConfigurationDescriptor(int config, uint8_t** pBuf);
va009039 0:2b4ea8a138e5 51 //UsbErr getInterfaceDescriptor(int config, int item, uint8_t** pBuf);
va009039 0:2b4ea8a138e5 52
va009039 0:2b4ea8a138e5 53 UsbErr setConfiguration(int config);
va009039 0:2b4ea8a138e5 54
va009039 0:2b4ea8a138e5 55 UsbErr controlSend(byte requestType, byte request, word value, word index, const byte* buf, int len);
va009039 0:2b4ea8a138e5 56 UsbErr controlReceive(byte requestType, byte request, word value, word index, const byte* buf, int len);
va009039 0:2b4ea8a138e5 57 UsbErr GetDescriptor(int type, int index, const byte* buf, int len);
va009039 0:2b4ea8a138e5 58 UsbErr GetString(int index, char* buf, int len);
va009039 0:2b4ea8a138e5 59 UsbErr SetInterfaceAlternate(int interface, int alternate);
va009039 0:2b4ea8a138e5 60
va009039 0:2b4ea8a138e5 61 uint8_t m_DeviceClass;
va009039 0:2b4ea8a138e5 62 uint8_t m_InterfaceClass;
va009039 0:2b4ea8a138e5 63
va009039 0:2b4ea8a138e5 64 protected:
va009039 0:2b4ea8a138e5 65 void fillControlBuf(byte requestType, byte request, word value, word index, int len);
va009039 0:2b4ea8a138e5 66 private:
va009039 0:2b4ea8a138e5 67 friend class UsbEndpoint;
va009039 0:2b4ea8a138e5 68 friend class UsbHostMgr;
va009039 0:2b4ea8a138e5 69
va009039 0:2b4ea8a138e5 70 UsbEndpoint* m_pControlEp;
va009039 0:2b4ea8a138e5 71
va009039 0:2b4ea8a138e5 72 UsbHostMgr* m_pMgr;
va009039 0:2b4ea8a138e5 73
va009039 0:2b4ea8a138e5 74 bool m_connected;
va009039 0:2b4ea8a138e5 75 bool m_enumerated;
va009039 0:2b4ea8a138e5 76
va009039 0:2b4ea8a138e5 77 int m_hub;
va009039 0:2b4ea8a138e5 78 int m_port;
va009039 0:2b4ea8a138e5 79 int m_addr;
va009039 0:2b4ea8a138e5 80
va009039 0:2b4ea8a138e5 81 int m_refs;
va009039 0:2b4ea8a138e5 82
va009039 0:2b4ea8a138e5 83 uint16_t m_vid;
va009039 0:2b4ea8a138e5 84 uint16_t m_pid;
va009039 0:2b4ea8a138e5 85
va009039 0:2b4ea8a138e5 86 byte m_controlBuf[8];//8
va009039 0:2b4ea8a138e5 87 //byte m_controlDataBuf[/*128*/256];
va009039 0:2b4ea8a138e5 88
va009039 0:2b4ea8a138e5 89 UsbErr hub_init();
va009039 0:2b4ea8a138e5 90 UsbErr hub_poll();
va009039 0:2b4ea8a138e5 91 UsbErr hub_PortReset(int port);
va009039 0:2b4ea8a138e5 92 UsbErr SetPortFeature(int feature, int index);
va009039 0:2b4ea8a138e5 93 UsbErr ClearPortFeature(int feature, int index);
va009039 0:2b4ea8a138e5 94 UsbErr SetPortReset(int port);
va009039 0:2b4ea8a138e5 95 UsbErr GetPortStatus(int port, uint8_t* buf, int size);
va009039 0:2b4ea8a138e5 96 int m_hub_ports;
va009039 0:2b4ea8a138e5 97 };
va009039 0:2b4ea8a138e5 98
va009039 0:2b4ea8a138e5 99 #endif