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

Dependents:   class_project_main

Revision:
11:3b072cf16df8
Parent:
10:fc1cb68fc91e
--- a/PIMA15740/PIMAArray.h	Wed Sep 18 01:48:07 2013 +0000
+++ b/PIMA15740/PIMAArray.h	Mon Oct 07 04:45:55 2013 +0000
@@ -51,10 +51,12 @@
    *  @return The number of bytes used from the buffer to create the PIMA array.
    */
    
-   int FillArray(uint8_t *currentPtr) {
-     SetNumberOfElements(*((uint32_t *)currentPtr));
-     SetElements((TYPE *)(currentPtr+sizeof(uint32_t)));
-     return (sizeof(TYPE)*numberOfElements) + sizeof(uint32_t); 
+   unsigned int FillArray(uint8_t *initialPtr) {
+     uint8_t *currentPtr=initialPtr;
+     
+     currentPtr+=SetNumberOfElements(*((uint32_t *)currentPtr));
+     currentPtr+=SetElements((uint8_t *)(currentPtr));
+     return (currentPtr-initialPtr); 
    }
    
    TYPE GetElement(uint32_t index) {
@@ -82,21 +84,24 @@
  * @param uint8_t The number of elements to create storage space for.
  * @return none
  */
- void SetNumberOfElements(uint8_t length) {
+ unsigned int SetNumberOfElements(uint8_t length) {
      this->numberOfElements=length;
      if( elements !=NULL)
         free(elements);
      elements = (TYPE *) malloc(sizeof(TYPE)*length);
+     return sizeof(uint32_t);
  };
  
  /**
  * Function to read codes form a uint8t buffer and store them.
  * @param buffer pointer to a uint8_t buffer
  */
- void SetElements(uint16_t *buffer){
-     if(buffer!=NULL && elements !=NULL)
+ unsigned int SetElements(uint8_t *buffer){
+     TYPE *castPtr = (TYPE *)buffer;
+     if(castPtr!=NULL && elements !=NULL)
        for(int i=0;i<this->numberOfElements;i++)
-           elements[i]=buffer[i];
+           elements[i]=castPtr[i];
+     return (sizeof(elements[0])*numberOfElements);
  };
   
 };