1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
<table class="head">
<tr>
<td class="head-ltitle">BTSCO(4)</td>
<td class="head-vol">Device Drivers Manual</td>
<td class="head-rtitle">BTSCO(4)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">btsco</code> — <span class="Nd">Bluetooth
SCO Audio</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="Cd">btsco* at bthub?</code>
<br/>
<code class="Cd">audio* at audiobus?</code></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">btsco</code> driver provides support for
Bluetooth SCO (Synchronous connection-oriented) Audio devices through the
<a class="Xr">audio(4)</a> driver.</p>
<p class="Pp">The <code class="Nm">btsco</code> driver must be configured at run
time with the <a class="Xr">btdevctl(8)</a> program. The following
properties are used by the <code class="Nm">btsco</code> driver during
autoconfiguration:</p>
<dl class="Bl-tag">
<dt>local-bdaddr</dt>
<dd>Local device address.</dd>
<dt>remote-bdaddr</dt>
<dd>Remote device address.</dd>
<dt>service-name</dt>
<dd>The <code class="Nm">btsco</code> driver matches the ‘HF’
and ‘HSET’ services. For the ‘HF’ service, the
<code class="Nm">btsco</code> device will, on <a class="Xr">open(2)</a>,
listen for incoming connections from the remote device. Otherwise,
<code class="Nm">btsco</code> will attempt to initiate a connection to the
remote device.</dd>
<dt>rfcomm-channel</dt>
<dd>This integer value is not used directly, but will be stored and passed via
the <code class="Dv">BTSCO_INFO</code> ioctl as below:</dd>
</dl>
<p class="Pp">SCO connections require a baseband connection between the two
devices before they can be created. The <code class="Nm">btsco</code> driver
does not create this, but can provide information to facilitate an
application setting up a control channel prior to use, via the
<code class="Dv">BTSCO_INFO</code> <a class="Xr">ioctl(2)</a> call on the
mixer device, which returns a <var class="Ar">btsco_info</var> structure as
follows:</p>
<div class="Bd Pp Li">
<pre>#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)</pre>
</div>
<p class="Pp">The <code class="Nm">btsco</code> driver can be configured to act
in Connect or Listen mode. In Connect mode, the
<code class="Nm">btsco</code> driver will initiate a connection to the
remote device on an <a class="Xr">open(2)</a> call, whereas in Listen mode,
<a class="Xr">open(2)</a> will block until the remote device initiates the
connection.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr">bthset(1)</a>, <a class="Xr">ioctl(2)</a>,
<a class="Xr">audio(4)</a>, <a class="Xr">bluetooth(4)</a>,
<a class="Xr">bthub(4)</a>, <a class="Xr">btdevctl(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">btsco</code> driver was written for
<span class="Ux">NetBSD 4.0</span> by <span class="An">Iain Hibbert</span>
under the sponsorship of Itronix, Inc.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp"><code class="Nm">btsco</code> 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.</p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">November 29, 2014</td>
<td class="foot-os">NetBSD 10.1</td>
</tr>
</table>
|