BTSCO(4)

πŸ“¦ version 11.0, in nixpkgs unstable

🌸 NAME 🌸

okay so bestie, this is btsco(4) β€” it’s giving Bluetooth SCO Audio, where SCO means Synchronous connection-oriented, and it’s all about Bluetooth audio devices through the audio(4) driver. iconic behavior, honestly. πŸ’–

✨ 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. no cap. 🫢

The btsco driver must be configured at run time with the btdevctl(8) program. During autoconfiguration, these are the properties it uses:

  • local-bdaddr β€” local device address. that’s the whole thing. πŸ’…
  • remote-bdaddr β€” remote device address. also exactly what it says. ✨
  • 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. lowkey important. πŸ‘€
  • 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. main character energy, fr fr. πŸŽ€

πŸ¦‹ SEE ALSO πŸ¦‹

🌈 HISTORY 🌈

The btsco driver was written for NetBSD 4.0 by Iain Hibbert under the sponsorship of Itronix, Inc. periodt. πŸ‘‘

πŸ’€ 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. bestie, do not mess with that default. seriously. 😭

made with πŸ’– for the Debian girlies β€” November 29, 2014 β€” btsco(4) signing off, mwah πŸ’…

πŸ“¦ where this page comes from