Library to allo USB PTP device to be hosted by the mbed platform
Dependents: class_project_main
PIMA15740/PIMAPropDescr.h
- Committer:
- jakowisp
- Date:
- 2013-09-18
- Revision:
- 10:fc1cb68fc91e
- Child:
- 11:3b072cf16df8
File content as of revision 10:fc1cb68fc91e:
/** * @file PIMAPropDesc.h * @brief PIMA Property Description class definition * @author Dwayne Dilbeck * @date 9/16/2013 * * mbed USBHostPTP Library(PIMA15740 String definition) * @par Copyright: * Copyright (c) 2013 Dwayne Dilbeck * @par License: * This software is distributed under the terms of the GNU Lesser General Public License */ #include "PIMADTS.h" /** * Class Property Description * * The PIMA15740 standard defines * */ class PIMAPropDesc { public: int FillPropDesc(uint8_t *currentPtr) { devicePropertyCode = *((uint16_t *)currentPtr); dataType = *((uint16_t *)(currentPtr+sizeof(uint16_t))); getSet=*((uint8_t *)(currentPtr+2*sizeof(uint16_t))); switch(dataType) { case PIMA_DATATYPE_CODE_INT8: factoryDefault.ptri8 = new DTS<int8_t>; currentValue.ptri8 = new DTS<int8_t>; break; case PIMA_DATATYPE_CODE_UINT8: factoryDefault.ptru8 = new DTS<uint8_t>; currentValue.ptru8 = new DTS<uint8_t>; break; case PIMA_DATATYPE_CODE_INT16: factoryDefault.ptri16 = new DTS<int16_t>; currentValue.ptri16 = new DTS<int16_t>; break; case PIMA_DATATYPE_CODE_UINT16: factoryDefault.ptru16 = new DTS<uint16_t>; currentValue.ptru16 = new DTS<uint16_t>; break; case PIMA_DATATYPE_CODE_INT32: factoryDefault.ptri32 = new DTS<int32_t>; currentValue.ptri32 = new DTS<int32_t>; break; case PIMA_DATATYPE_CODE_UINT32: factoryDefault.ptru32 = new DTS<uint32_t>; currentValue.ptru32 = new DTS<uint32_t>; break; case PIMA_DATATYPE_CODE_INT64: factoryDefault.ptri64 = new DTS<int64_t>; currentValue.ptri64 = new DTS<int64_t>; break; case PIMA_DATATYPE_CODE_UINT64: factoryDefault.ptru64 = new DTS<uint64_t>; currentValue.ptru64 = new DTS<uint64_t>; break; case PIMA_DATATYPE_CODE_INT128: break; case PIMA_DATATYPE_CODE_UINT128: break; case PIMA_DATATYPE_CODE_AINT8: factoryDefault.ptri8 = new PIMAArray<int8_t>; currentValue.ptri8 = new PIMAArray<int8_t>; break; case PIMA_DATATYPE_CODE_AUINT8: factoryDefault.ptri8 = new PIMAArray<uint8_t> ; currentValue.ptri8 = new PIMAArray<uint8_t>; break; case PIMA_DATATYPE_CODE_AINT16: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AUINT16: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AINT32: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AUINT32: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AINT64: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AUINT64: factoryDefault.ptri8 = new DTS<PIMAArray<int8_t> >; currentValue.ptri8 = new DTS<PIMAArray<int8_t> >; break; case PIMA_DATATYPE_CODE_AINT128: break; case PIMA_DATATYPE_CODE_AUINT128: break; case PIMA_DATATYPE_CODE_STR: factoryDefault.ptri8 = new DTS<PIMAString>; currentValue.ptri8 = new DTS<PIMAString>; break; default: break; } factoryDefault.fill(currentPtr); currentValue.fill(currentPtr); //(sizeof(TYPE)*numberOfElements) + return (sizeof(uint32_t)); //TODO: Finish Fill function. } private: ///PIMA 15740:2000 Section 13, table 23 uint16_t devicePropertyCode; uint16_t dataType; uint8_t getSet; typedef union DTSPTR { DTS<int8_t> *ptri8; DTS<uint8_t> *ptru8; DTS<int16_t> *ptri16; DTS<uint16_t> *ptru16; DTS<int32_t> *ptri32; DTS<uint32_t> *ptru32; DTS<int64_t> *ptri64; DTS<uint64_t> *ptru64; } DTSPTR; DTSPTR factoryDefault; DTSPTR currentValue; uint8_t formFlag; typedef union { struct { DTSPTR minimumValue; DTSPTR maximumValue; DTSPTR stepSize; } rangeForm; DTSPTR enumerationForm; } FORMS; FORMS FORM; };