NAME
btsco —
Bluetooth SCO Audio
SYNOPSIS
btsco* at bthub?
audio* at audiobus?
DESCRIPTION
The
btsco driver provides support for Bluetooth SCO
(Synchronous connection-oriented) Audio devices through the
audio(4) driver.
The
btsco driver must be configured at run time with the
btdevctl(8) program. The
following properties are used by the
btsco driver during
autoconfiguration:
-
-
- local-bdaddr
- Local device address.
-
-
- remote-bdaddr
- Remote device address.
-
-
- service-name
- The btsco driver matches the
‘HF’ and ‘HSET’ services. For the ‘HF’
service, the btsco device will, on
open(2), listen for incoming
connections from the remote device. Otherwise, btsco
will attempt to initiate a connection to the remote device.
-
-
- rfcomm-channel
- This integer value is not used directly, but will be stored
and passed via the
BTSCO_INFO
ioctl as below:
SCO connections require a baseband connection between the two devices before
they can be created. The
btsco driver does not create this,
but can provide information to facilitate an application setting up a control
channel prior to use, via the
BTSCO_INFO
ioctl(2) call on the mixer
device, which returns a
btsco_info structure as follows:
#include <dev/bluetooth/btsco.h>
struct btsco_info {
bdaddr_t laddr; /* controller bdaddr */
bdaddr_t raddr; /* headset bdaddr */
uint8_t channel; /* RFCOMM channel */
int vgs; /* mixer index speaker */
int vgm; /* mixer index mic */
};
#define BTSCO_INFO _IOR('b', 16, struct btsco_info)
The
btsco driver can be configured to act in Connect or Listen
mode. In Connect mode, the
btsco driver will initiate a
connection to the remote device on an
open(2) call, whereas in Listen
mode,
open(2) will block until the
remote device initiates the connection.
SEE ALSO
bthset(1),
ioctl(2),
audio(4),
bluetooth(4),
bthub(4),
btdevctl(8)
HISTORY
The
btsco driver was written for
NetBSD
4.0 by
Iain Hibbert under the sponsorship of
Itronix, Inc.
BUGS
btsco takes no notice of the HCI Voice Setting in the
Bluetooth controller, and this must be 0x0060 (the default) as alternate
values are currently unsupported.