Library to allo USB PTP device to be hosted by the mbed platform

Dependents:   class_project_main

Committer:
jakowisp
Date:
Fri Aug 23 19:34:59 2013 +0000
Revision:
1:71c0e9dc153d
Parent:
0:98cf19bcd828
Child:
2:67753d738eb8
Inital publication to begin documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jakowisp 1:71c0e9dc153d 1 /* mbed USBHostPTP Library(PIMA15740 definitions)
jakowisp 1:71c0e9dc153d 2 * Copyright (c) 2013 Dwayne Dilbeck
jakowisp 1:71c0e9dc153d 3 * This software is distributed under the terms of the GNU Lesser General Public License
jakowisp 1:71c0e9dc153d 4 */
jakowisp 0:98cf19bcd828 5
jakowisp 0:98cf19bcd828 6
jakowisp 0:98cf19bcd828 7 class PIMAString {
jakowisp 0:98cf19bcd828 8 public:
jakowisp 0:98cf19bcd828 9
jakowisp 0:98cf19bcd828 10 PIMAString() {
jakowisp 0:98cf19bcd828 11 length=0;
jakowisp 0:98cf19bcd828 12 StringChars=NULL;
jakowisp 0:98cf19bcd828 13 vals=NULL;
jakowisp 0:98cf19bcd828 14 };
jakowisp 0:98cf19bcd828 15
jakowisp 0:98cf19bcd828 16 ~PIMAString() {
jakowisp 0:98cf19bcd828 17 if( StringChars !=NULL)
jakowisp 0:98cf19bcd828 18 free(StringChars);
jakowisp 0:98cf19bcd828 19 if(vals!=NULL)
jakowisp 0:98cf19bcd828 20 free(vals);
jakowisp 0:98cf19bcd828 21 };
jakowisp 0:98cf19bcd828 22
jakowisp 0:98cf19bcd828 23 int FillString(uint8_t *currentPtr) {
jakowisp 0:98cf19bcd828 24 setLength(*currentPtr);
jakowisp 0:98cf19bcd828 25 setStringChars((uint16_t *)(currentPtr+1));
jakowisp 0:98cf19bcd828 26 return 2*length +1;
jakowisp 0:98cf19bcd828 27 };
jakowisp 0:98cf19bcd828 28
jakowisp 0:98cf19bcd828 29
jakowisp 0:98cf19bcd828 30 char * getString() {
jakowisp 0:98cf19bcd828 31 if(vals!=NULL)
jakowisp 0:98cf19bcd828 32 free(vals);
jakowisp 0:98cf19bcd828 33 vals=(char *) malloc(sizeof(char)*(this->length+1));
jakowisp 0:98cf19bcd828 34 for(int i=0;i<this->length;i++)
jakowisp 0:98cf19bcd828 35 vals[i]=StringChars[i]; //NOTE: Truncates the uint16_t value.
jakowisp 0:98cf19bcd828 36 vals[length]='\0';
jakowisp 0:98cf19bcd828 37 return vals;
jakowisp 0:98cf19bcd828 38 }
jakowisp 0:98cf19bcd828 39
jakowisp 0:98cf19bcd828 40 uint8_t getLength() {
jakowisp 0:98cf19bcd828 41 return this->length;
jakowisp 0:98cf19bcd828 42 }
jakowisp 0:98cf19bcd828 43
jakowisp 0:98cf19bcd828 44 private:
jakowisp 0:98cf19bcd828 45 void setLength(uint8_t length) {
jakowisp 0:98cf19bcd828 46 if(length > this->length) {
jakowisp 0:98cf19bcd828 47 if( StringChars !=NULL)
jakowisp 0:98cf19bcd828 48 free(StringChars);
jakowisp 0:98cf19bcd828 49 StringChars = (uint16_t *) malloc(sizeof(uint16_t)*length);
jakowisp 0:98cf19bcd828 50 }
jakowisp 0:98cf19bcd828 51 this->length=length;
jakowisp 0:98cf19bcd828 52
jakowisp 0:98cf19bcd828 53 };
jakowisp 0:98cf19bcd828 54
jakowisp 0:98cf19bcd828 55 void setStringChars(uint16_t *buffer){
jakowisp 0:98cf19bcd828 56 if(buffer!=NULL && StringChars !=NULL)
jakowisp 0:98cf19bcd828 57 for(int i=0;i<this->length;i++)
jakowisp 0:98cf19bcd828 58 StringChars[i]=buffer[i];
jakowisp 0:98cf19bcd828 59 };
jakowisp 0:98cf19bcd828 60
jakowisp 0:98cf19bcd828 61
jakowisp 0:98cf19bcd828 62 uint8_t length;
jakowisp 0:98cf19bcd828 63 uint16_t *StringChars;
jakowisp 0:98cf19bcd828 64 char *vals;
jakowisp 0:98cf19bcd828 65
jakowisp 0:98cf19bcd828 66 };