mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-16 08:42:28 +00:00
libusb: use alt setting 2 for one 8-bit or 16-bit voice channel
This commit is contained in:
parent
800f1352ca
commit
d5422c82dc
@ -65,8 +65,6 @@
|
|||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_transport.h"
|
#include "hci_transport.h"
|
||||||
|
|
||||||
// #define HAVE_SCO
|
|
||||||
|
|
||||||
#if (USB_VENDOR_ID != 0) && (USB_PRODUCT_ID != 0)
|
#if (USB_VENDOR_ID != 0) && (USB_PRODUCT_ID != 0)
|
||||||
#define HAVE_USB_VENDOR_ID_AND_PRODUCT_ID
|
#define HAVE_USB_VENDOR_ID_AND_PRODUCT_ID
|
||||||
#endif
|
#endif
|
||||||
@ -150,9 +148,10 @@ static int acl_out_addr;
|
|||||||
static int sco_in_addr;
|
static int sco_in_addr;
|
||||||
static int sco_out_addr;
|
static int sco_out_addr;
|
||||||
|
|
||||||
// outgoing SCO packets (4 > 2, 64 is size of SCO buffer in PTS Dongle)
|
// Outgoing SCO packet queue
|
||||||
|
// 49 bytes is the max usb packet size for alternate setting 5 (3 8-bit channels or 1 8-bit and 1 16-bit channel)
|
||||||
// simplified ring buffer implementation
|
// simplified ring buffer implementation
|
||||||
#define SCO_RING_PACKET_SIZE (64)
|
#define SCO_RING_PACKET_SIZE (49)
|
||||||
#define SCO_RING_BUFFER_COUNT (8)
|
#define SCO_RING_BUFFER_COUNT (8)
|
||||||
#define SCO_RING_BUFFER_SIZE (SCO_RING_BUFFER_COUNT * SCO_RING_PACKET_SIZE)
|
#define SCO_RING_BUFFER_SIZE (SCO_RING_BUFFER_COUNT * SCO_RING_PACKET_SIZE)
|
||||||
|
|
||||||
@ -603,14 +602,16 @@ static int prepare_device(libusb_device_handle * aHandle){
|
|||||||
libusb_close(aHandle);
|
libusb_close(aHandle);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
//
|
||||||
// Bluetooth USB Transprot Alternate Settings:
|
// Bluetooth USB Transprot Alternate Settings:
|
||||||
|
//
|
||||||
// 0: No active voice channels (for USB compliance)
|
// 0: No active voice channels (for USB compliance)
|
||||||
// 1: One 8 kHz voice channel with 8-bit encoding
|
// 1: One 8 kHz voice channel with 8-bit encoding
|
||||||
// 2: Two 8 kHz voice channels with 8-bit encoding or one 8 kHz voice channel with 16-bit encoding
|
// 2: Two 8 kHz voice channels with 8-bit encoding or one 8 kHz voice channel with 16-bit encoding
|
||||||
// 3: Three 8 kHz voice channels with 8-bit encoding
|
// 3: Three 8 kHz voice channels with 8-bit encoding
|
||||||
// 4: Two 8 kHz voice channels with 16-bit encoding or one 16 kHz voice channel with 16-bit encoding
|
// 4: Two 8 kHz voice channels with 16-bit encoding or one 16 kHz voice channel with 16-bit encoding
|
||||||
// 5: Three 8 kHz voice channels with 16-bit encoding or one 8 kHz voice channel with 16-bit encoding and one 16 kHz voice channel with 16-bit encoding
|
// 5: Three 8 kHz voice channels with 16-bit encoding or one 8 kHz voice channel with 16-bit encoding and one 16 kHz voice channel with 16-bit encoding
|
||||||
int alt_setting = 1;
|
int alt_setting = 2; // <-- we support only a single SCO connection
|
||||||
log_info("Switching to setting %u on interface 1..", alt_setting);
|
log_info("Switching to setting %u on interface 1..", alt_setting);
|
||||||
r = libusb_set_interface_alt_setting(aHandle, 1, alt_setting);
|
r = libusb_set_interface_alt_setting(aHandle, 1, alt_setting);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user