Library to allo USB PTP device to be hosted by the mbed platform
Dependents: class_project_main
PIMA15740/PIMAString.h@1:71c0e9dc153d, 2013-08-23 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |