libftdi: (tomj) fixed readbuffer offset sizes, fixed read return code v0.3
authorThomas Jarosch <opensource@intra2net.com>
Thu, 25 Mar 2004 21:44:30 +0000 (21:44 +0000)
committerThomas Jarosch <opensource@intra2net.com>
Thu, 25 Mar 2004 21:44:30 +0000 (21:44 +0000)
ftdi/ftdi.c
ftdi/ftdi.h

index 0c2314a..84f768a 100644 (file)
@@ -276,10 +276,8 @@ int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size) {
 
        // printf("Got bytes from buffer: %d\n", ftdi->readbuffer_remaining);
 
-       // Fix offsets
+       // Fix offset
        offset += ftdi->readbuffer_remaining;
-       ftdi->readbuffer_remaining = 0;
-       ftdi->readbuffer_offset = 0;
     }
     
     // do the actual USB read
@@ -318,10 +316,11 @@ int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size) {
 
                ftdi->readbuffer_offset += part_size;
                ftdi->readbuffer_remaining = ret-part_size;
+               offset += part_size;
                
                // printf("Returning part: %d - size: %d - offset: %d - ret: %d - remaining: %d\n", part_size, size, offset, ret, ftdi->readbuffer_remaining);
 
-               return part_size;
+               return offset;
            }
        }
     }
index 28a40bd..ea78d3c 100644 (file)
@@ -28,8 +28,8 @@ struct ftdi_context {
     int baudrate;
     unsigned char bitbang_enabled;
     unsigned char *readbuffer;
-    unsigned char readbuffer_offset;
-    unsigned char readbuffer_remaining;
+    unsigned int readbuffer_offset;
+    unsigned int readbuffer_remaining;
     unsigned int readbuffer_chunksize;
     unsigned int writebuffer_chunksize;