Library to allow your mbed device to communicate with the Android ADK.

Committer:
richbayliss
Date:
Mon Jul 11 20:51:05 2011 +0000
Revision:
0:8a0d4584ca86
Child:
1:ed3873f4f745
Initial Version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richbayliss 0:8a0d4584ca86 1
richbayliss 0:8a0d4584ca86 2 #ifndef ADK_H_INCLUDED
richbayliss 0:8a0d4584ca86 3 #define ADK_H_INCLUDED
richbayliss 0:8a0d4584ca86 4
richbayliss 0:8a0d4584ca86 5 #include "mbed.h"
richbayliss 0:8a0d4584ca86 6 #include "USBHost.h"
richbayliss 0:8a0d4584ca86 7
richbayliss 0:8a0d4584ca86 8
richbayliss 0:8a0d4584ca86 9 #define ADKLOG 1
richbayliss 0:8a0d4584ca86 10 #if ADKLOG
richbayliss 0:8a0d4584ca86 11 #define LOG(...) printf(__VA_ARGS__)
richbayliss 0:8a0d4584ca86 12 #define Log(...) printf(__VA_ARGS__)
richbayliss 0:8a0d4584ca86 13 #define log(...) printf(__VA_ARGS__)
richbayliss 0:8a0d4584ca86 14
richbayliss 0:8a0d4584ca86 15 #else
richbayliss 0:8a0d4584ca86 16 #define LOG(...) do {} while(0)
richbayliss 0:8a0d4584ca86 17 #define Log(...) do {} while(0)
richbayliss 0:8a0d4584ca86 18 #define log(...) do {} while(0)
richbayliss 0:8a0d4584ca86 19
richbayliss 0:8a0d4584ca86 20 #endif
richbayliss 0:8a0d4584ca86 21
richbayliss 0:8a0d4584ca86 22 #define ACCESSORY_STRING_MANUFACTURER 0
richbayliss 0:8a0d4584ca86 23 #define ACCESSORY_STRING_MODEL 1
richbayliss 0:8a0d4584ca86 24 #define ACCESSORY_STRING_DESCRIPTION 2
richbayliss 0:8a0d4584ca86 25 #define ACCESSORY_STRING_VERSION 3
richbayliss 0:8a0d4584ca86 26 #define ACCESSORY_STRING_URI 4
richbayliss 0:8a0d4584ca86 27 #define ACCESSORY_STRING_SERIAL 5
richbayliss 0:8a0d4584ca86 28
richbayliss 0:8a0d4584ca86 29 #define ACCESSORY_GET_PROTOCOL 51
richbayliss 0:8a0d4584ca86 30 #define ACCESSORY_SEND_STRING 52
richbayliss 0:8a0d4584ca86 31 #define ACCESSORY_START 53
richbayliss 0:8a0d4584ca86 32
richbayliss 0:8a0d4584ca86 33
richbayliss 0:8a0d4584ca86 34 bool switchDevice(int device);
richbayliss 0:8a0d4584ca86 35
richbayliss 0:8a0d4584ca86 36 class AndroidAccessory {
richbayliss 0:8a0d4584ca86 37 public:
richbayliss 0:8a0d4584ca86 38
richbayliss 0:8a0d4584ca86 39 AndroidAccessory(int rbuffsize,int wbuffsize,
richbayliss 0:8a0d4584ca86 40 const char* manufacturer,
richbayliss 0:8a0d4584ca86 41 const char *model,
richbayliss 0:8a0d4584ca86 42 const char *description,
richbayliss 0:8a0d4584ca86 43 const char *version,
richbayliss 0:8a0d4584ca86 44 const char *uri,
richbayliss 0:8a0d4584ca86 45 const char *serial
richbayliss 0:8a0d4584ca86 46 );
richbayliss 0:8a0d4584ca86 47 virtual void init(int device, int configuration, int interfaceNumber);
richbayliss 0:8a0d4584ca86 48
richbayliss 0:8a0d4584ca86 49 virtual void resetDevice()=0;
richbayliss 0:8a0d4584ca86 50 virtual void setupDevice()=0;
richbayliss 0:8a0d4584ca86 51 virtual int callbackRead(u8 *buff, int len)=0;
richbayliss 0:8a0d4584ca86 52 int write(u8 *buff, int len);
richbayliss 0:8a0d4584ca86 53 int write() {
richbayliss 0:8a0d4584ca86 54 return write(_writebuff,_writebuffsize);
richbayliss 0:8a0d4584ca86 55 }
richbayliss 0:8a0d4584ca86 56 //int read(u8 *buff, int len);
richbayliss 0:8a0d4584ca86 57
richbayliss 0:8a0d4584ca86 58
richbayliss 0:8a0d4584ca86 59 void adkEnd() {
richbayliss 0:8a0d4584ca86 60 // _initok=false;
richbayliss 0:8a0d4584ca86 61 resetDevice();
richbayliss 0:8a0d4584ca86 62 }; //if connection close
richbayliss 0:8a0d4584ca86 63 bool switchDevice(int device);
richbayliss 0:8a0d4584ca86 64
richbayliss 0:8a0d4584ca86 65 //buffer
richbayliss 0:8a0d4584ca86 66 u8* _readbuff;
richbayliss 0:8a0d4584ca86 67 int _readbuffsize;
richbayliss 0:8a0d4584ca86 68 u8* _writebuff;
richbayliss 0:8a0d4584ca86 69 int _writebuffsize;
richbayliss 0:8a0d4584ca86 70 u8* _strbuff;//255bytes;
richbayliss 0:8a0d4584ca86 71
richbayliss 0:8a0d4584ca86 72 private:
richbayliss 0:8a0d4584ca86 73
richbayliss 0:8a0d4584ca86 74 void sendString(int device, int index, const char *str);
richbayliss 0:8a0d4584ca86 75 int getProtocol(int device);
richbayliss 0:8a0d4584ca86 76
richbayliss 0:8a0d4584ca86 77 const char *manufacturer;
richbayliss 0:8a0d4584ca86 78 const char *model;
richbayliss 0:8a0d4584ca86 79 const char *description;
richbayliss 0:8a0d4584ca86 80 const char *version;
richbayliss 0:8a0d4584ca86 81 const char *uri;
richbayliss 0:8a0d4584ca86 82 const char *serial;
richbayliss 0:8a0d4584ca86 83
richbayliss 0:8a0d4584ca86 84 //endpoints
richbayliss 0:8a0d4584ca86 85 int input_ep;
richbayliss 0:8a0d4584ca86 86 int output_ep;
richbayliss 0:8a0d4584ca86 87
richbayliss 0:8a0d4584ca86 88 int _device;
richbayliss 0:8a0d4584ca86 89 int _configuration;
richbayliss 0:8a0d4584ca86 90 int _interfaceNumber;
richbayliss 0:8a0d4584ca86 91
richbayliss 0:8a0d4584ca86 92 //bool _initok;
richbayliss 0:8a0d4584ca86 93
richbayliss 0:8a0d4584ca86 94 };
richbayliss 0:8a0d4584ca86 95
richbayliss 0:8a0d4584ca86 96 extern AndroidAccessory* _adk;
richbayliss 0:8a0d4584ca86 97
richbayliss 0:8a0d4584ca86 98
richbayliss 0:8a0d4584ca86 99 #endif