>>>>> "Emmanuel" == Emmanuel Blot <[email protected]> writes:

    >> then there would be no reason at all for the public ftdi.h to include
    >> usb.h or libusb.h.

    Emmanuel> As it has been the case for a long time, this means that the
    Emmanuel> proposed change is an ABI compatibility break, as some
    Emmanuel> softwares may already use this structure...

Sorry for coming that late into the discussion. Much to do at work...

Probably I introduced the colliding patch with much ingorance about
extensability:

@@ -166,8 +175,10 @@
 struct ftdi_context
 {
     /* USB specific */
+    /** libusb's context */
+    struct libusb_context *usb_ctx;
     /** libusb's usb_dev_handle */
-    struct usb_dev_handle *usb_dev;
+    struct libusb_device_handle *usb_dev;
     /** usb read timeout */
     int usb_read_timeout;
     /** usb write timeout */

usb_ctx is only used inside libftdi itself, as in src/ftdi.c and
src/ftdi_stream.c 

As only libftdi references this variable, we can safely move it to the tail
of the ftdi_context structure. If we also keep the asyn buffer from \
version 0:

-    /** Buffer needed for async communication */
-    char *async_usb_buffer;
-    /** Number of URB-structures we can buffer */
-    unsigned int async_usb_buffer_size;

I guess we could use libftdi-1.0/src/ftdi.h for both the libftdi-0 and
libftdi-1. 

We could also make async_usb_buffer/usb_ctx a union, as
async_usb_buffer/usb_ctx also is accessed only inside libftdi0/1.

Bye
-- 
Uwe Bonnes                [email protected]

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [email protected]   

Reply via email to