---
 lib/obex_transport.c |    4 ++--
 lib/usbobex.c        |   37 ++++++++++++++++++-------------------
 lib/usbobex.h        |    3 +--
 3 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/lib/obex_transport.c b/lib/obex_transport.c
index e2da96f..690a79f 100644
--- a/lib/obex_transport.c
+++ b/lib/obex_transport.c
@@ -433,7 +433,7 @@ int obex_transport_write(obex_t *self, buf_t *msg)
                if (self->trans.connected != TRUE)
                        break;
                DEBUG(4, "Endpoint %d\n", 
self->trans.self.usb.data_endpoint_write);
-               actual = usb_bulk_write(self->trans.self.usb.dev_data,
+               actual = usb_bulk_write(self->trans.self.usb.dev,
                                        
self->trans.self.usb.data_endpoint_write,
                                        (char *) msg->data, msg->data_size,
                                        USB_OBEX_TIMEOUT);
@@ -493,7 +493,7 @@ int obex_transport_read(obex_t *self, int max, uint8_t 
*buf, int buflen)
                if (self->trans.connected != TRUE)
                        break;
                DEBUG(4, "Endpoint %d\n", 
self->trans.self.usb.data_endpoint_read);
-               actual = usb_bulk_read(self->trans.self.usb.dev_data,
+               actual = usb_bulk_read(self->trans.self.usb.dev,
                                        self->trans.self.usb.data_endpoint_read,
                                        buf_reserve_end(msg, self->mtu_rx),
                                        self->mtu_rx, USB_OBEX_TIMEOUT);
diff --git a/lib/usbobex.c b/lib/usbobex.c
index b12131b..b87458d 100644
--- a/lib/usbobex.c
+++ b/lib/usbobex.c
@@ -392,32 +392,31 @@ int usbobex_connect_request(obex_t *self)
 
        DEBUG(4, "\n");
 
-       self->trans.self.usb.dev_control = 
usb_open(self->trans.self.usb.device);
-       self->trans.self.usb.dev_data = usb_open(self->trans.self.usb.device);
+       self->trans.self.usb.dev = usb_open(self->trans.self.usb.device);
 
-       ret = usb_set_configuration(self->trans.self.usb.dev_control, 
self->trans.self.usb.configuration);
+       ret = usb_set_configuration(self->trans.self.usb.dev, 
self->trans.self.usb.configuration);
        if (ret < 0)
                DEBUG(4, "Can't set configuration %d", ret);
 
-       ret = usb_claim_interface(self->trans.self.usb.dev_control, 
self->trans.self.usb.control_interface);
+       ret = usb_claim_interface(self->trans.self.usb.dev, 
self->trans.self.usb.control_interface);
        if (ret < 0) {
                DEBUG(4, "Can't claim control interface %d", ret);
                goto err1;
        }
 
-       ret = usb_set_altinterface(self->trans.self.usb.dev_control, 
self->trans.self.usb.control_setting);
+       ret = usb_set_altinterface(self->trans.self.usb.dev, 
self->trans.self.usb.control_setting);
        if (ret < 0) {
                DEBUG(4, "Can't set control setting %d", ret);
                goto err2;
        }
 
-       ret = usb_claim_interface(self->trans.self.usb.dev_data, 
self->trans.self.usb.data_interface);
+       ret = usb_claim_interface(self->trans.self.usb.dev, 
self->trans.self.usb.data_interface);
        if (ret < 0) {
                DEBUG(4, "Can't claim data interface %d", ret);
                goto err2;
        }
 
-       ret = usb_set_altinterface(self->trans.self.usb.dev_data, 
self->trans.self.usb.data_active_setting);
+       ret = usb_set_altinterface(self->trans.self.usb.dev, 
self->trans.self.usb.data_active_setting);
        if (ret < 0) {
                DEBUG(4, "Can't set data active setting %d", ret);
                goto err3;
@@ -428,12 +427,11 @@ int usbobex_connect_request(obex_t *self)
        return 1;
 
 err3:
-       usb_release_interface(self->trans.self.usb.dev_data, 
self->trans.self.usb.data_interface);
+       usb_release_interface(self->trans.self.usb.dev, 
self->trans.self.usb.data_interface);
 err2:
-       usb_release_interface(self->trans.self.usb.dev_control, 
self->trans.self.usb.control_interface);
+       usb_release_interface(self->trans.self.usb.dev, 
self->trans.self.usb.control_interface);
 err1:
-       usb_close(self->trans.self.usb.dev_data);
-       usb_close(self->trans.self.usb.dev_control);
+       usb_close(self->trans.self.usb.dev);
        return ret;
 }
 
@@ -450,21 +448,22 @@ int usbobex_disconnect_request(obex_t *self)
                return 0;
 
        DEBUG(4, "\n");
-       ret = usb_set_altinterface(self->trans.self.usb.dev_data, 
self->trans.self.usb.data_idle_setting);
+
+       usb_clear_halt(self->trans.self.usb.dev, 
self->trans.self.usb.data_endpoint_read);
+       usb_clear_halt(self->trans.self.usb.dev, 
self->trans.self.usb.data_endpoint_write);
+
+       ret = usb_set_altinterface(self->trans.self.usb.dev, 
self->trans.self.usb.data_idle_setting);
        if (ret < 0)
                DEBUG(4, "Can't set data idle setting %d", ret);
-       ret = usb_release_interface(self->trans.self.usb.dev_data, 
self->trans.self.usb.data_interface);
+       ret = usb_release_interface(self->trans.self.usb.dev, 
self->trans.self.usb.data_interface);
        if (ret < 0)
                DEBUG(4, "Can't release data interface %d", ret);
-       ret = usb_release_interface(self->trans.self.usb.dev_control, 
self->trans.self.usb.control_interface);
+       ret = usb_release_interface(self->trans.self.usb.dev, 
self->trans.self.usb.control_interface);
        if (ret < 0)
                DEBUG(4, "Can't release control interface %d", ret);
-       ret = usb_close(self->trans.self.usb.dev_data);
-       if (ret < 0)
-               DEBUG(4, "Can't close data interface %d", ret);
-       ret = usb_close(self->trans.self.usb.dev_control);
+       ret = usb_close(self->trans.self.usb.dev);
        if (ret < 0)
-               DEBUG(4, "Can't close control interface %d", ret);
+               DEBUG(4, "Can't close interface %d", ret);
 
        return ret;
 }
diff --git a/lib/usbobex.h b/lib/usbobex.h
index efd7a38..9fb1797 100644
--- a/lib/usbobex.h
+++ b/lib/usbobex.h
@@ -48,8 +48,7 @@ struct obex_usb_intf_transport_t {
                                                 * in active setting */
        int data_endpoint_read;                 /* OBEX data/slave interface 
read endpoint */
        int data_endpoint_write;                /* OBEX data/slave interface 
write endpoint */
-       usb_dev_handle *dev_control;            /* libusb handler for control 
interace */
-       usb_dev_handle *dev_data;               /* libusb handler for data 
interface */
+       usb_dev_handle *dev;                    /* libusb handler */
 };
 
 /* "Union Functional Descriptor" from CDC spec 5.2.3.X
-- 
1.6.0.6


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users

Reply via email to