--- 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 ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Openobex-users mailing list Openobex-users@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/openobex-users