From 56e558dbc235d11ada89910532cac79ace2247ef Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 19 Jan 2017 17:44:52 +0100 Subject: [PATCH] libusb: start/stop isochronous transfers when SCO connections change --- platform/libusb/hci_transport_h2_libusb.c | 185 ++++++++++++++++------ 1 file changed, 134 insertions(+), 51 deletions(-) diff --git a/platform/libusb/hci_transport_h2_libusb.c b/platform/libusb/hci_transport_h2_libusb.c index 804e629af..90e476e55 100644 --- a/platform/libusb/hci_transport_h2_libusb.c +++ b/platform/libusb/hci_transport_h2_libusb.c @@ -172,6 +172,12 @@ static int sco_ring_write; // packet idx static int sco_out_transfers_active; static struct libusb_transfer *sco_out_transfers[SCO_OUT_BUFFER_COUNT]; static int sco_out_transfers_in_flight[SCO_OUT_BUFFER_COUNT]; + +// pause/resume +static uint16_t sco_voice_setting; +static int sco_num_connections; +static int sco_shutdown; + #endif // outgoing buffer for HCI Command packets @@ -250,22 +256,8 @@ LIBUSB_CALL static void async_callback(struct libusb_transfer *transfer){ int c; // identify and free transfers as part of shutdown - if (libusb_state != LIB_USB_TRANSFERS_ALLOCATED) { - for (c=0;cregister_packet_handler = usb_register_packet_handler; hci_transport_usb->can_send_packet_now = usb_can_send_packet_now; hci_transport_usb->send_packet = usb_send_packet; +#ifdef ENABLE_SCO_OVER_HCI hci_transport_usb->set_sco_config = usb_set_sco_config; +#endif } return hci_transport_usb; }