--- 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