The last patch had errors. Please use this one
-- 
Uwe Bonnes                [email protected]

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From 1d2277ee0698bd695e84535354a647bdee861d1a Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <[email protected]>
Date: Fri, 30 Sep 2011 12:44:14 +0200
Subject: Interface can not be changed on an already open device

---
 src/ftdi.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/ftdi.c b/src/ftdi.c
index 1f45e95..64c06eb 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -149,12 +149,20 @@ struct ftdi_context *ftdi_new(void)
     \retval  0: all fine
     \retval -1: unknown interface
     \retval -2: USB device unavailable
+    \retval -3: Device already open, Interface can't be set in that state
 */
 int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface 
interface)
 {
     if (ftdi == NULL)
         ftdi_error_return(-2, "USB device unavailable");
 
+    if (ftdi->usb_dev != NULL)
+    {
+        if ((ftdi->index != interface) && ((ftdi->index == INTERFACE_A) && 
(interface !=  INTERFACE_ANY)))
+            
+            ftdi_error_return(-3, "Interface can not be changed on an already 
open device");
+    }
+
     switch (interface)
     {
         case INTERFACE_ANY:
-- 
1.7.3.4


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

Reply via email to