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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
.TH USB 4
.SH NAME
usbmouse,
usbaudio
\- Universal Serial Bus user level device drivers
.SH SYNOPSIS
.B usb/usbmouse
[
.B -f
] [
.I ctrlno
.I n
]
.PP
.B usb/usbaudio
[
.B -d
] [
.B -v
.I volume
] [
.B -m
.I mountpoint
] [
.I ctrlno
.I n
]
.PP
.B usbstart
.SH DESCRIPTION
These programs implement support for specific USB device classes.
They should be run after
.IR usbd (4)
has had a chance to locate the devices in question and provide
them with device addresses and minimal configuration.
Dynamic handling of device insertion and removal is currently not supported.
.PP
The script
.B usbstart
checks whether a USB driver is present, and if so, starts usbd
followed by the support programs listed below.
.SS USB MICE
.B Usbmouse
sends mouse events from a USB mouse to
.B #m/mousein
where the Plan 9 kernel processes them like other mice.
.PP
Without arguments, it scans the USB status files to find a mouse
and uses the first one it finds. A pair of numeric arguments overrides this search
with a specific USB controller and device.
.PP
The
.B -f
flag runs
.B usbmouse
in the foreground.
.SS USB AUDIO DEVICES
.B Usbaudio
configures and manages a usb audio device. It implements a file system,
normally mounted in
.BI /dev ,
but this can be changed with the
.B \-m
flag, with files
.IR /volume ,
.IR /audioctl ,
.IR /audio ,
and
.IR /audioin .
The names
.I /volume
and
.I /audio
maintain backward compatibility with the soundblaster driver.
.PP
Reading
.I /volume
or
.I /audioctl
yields the device's settings. The data format of
.I /volume
is compatible with the soundblaster and
produces something like
.PP
.EX
audio out 65
treb out 0
bass out 0
speed out 44100
.EE
.PP
This file can be written using the same syntax. The keyword
.I out
may be omitted. Settings are given as percentages of the range.
.PP
The file
.I /audioctl
provides more information, using up to 6 columns of 12 characters each.
From left to right, the fields are:
.IR "control name" ,
.I in
or
.IR out ,
.IR "current value" ,
.IR "minimum value" ,
.IR maximum ,
and
.IR resolution .
There are 3, 5, or 6 columns present.
Maxima and resolution are omitted when they are not available or not applicable.
The resolution for
.I speed
is reported as 1 (one) if the sampling frequency is continuously variable. It is absent
if it is settable at a fixed number of discrete values only.
.PP
When all values from
.I /audioctl
have been read, a zero-sized buffer is returned (the usual end-of-file indication).
A new read will then block until one of the settings changes and then report its new value.
.PP
The file
.I /audioctl
can be written like
.IR /volume .
.PP
Audio data is written to
.I /audio
and read from
.IR /audioin .
The data format is little endian, samples ordered primarily by time and
secondarily by channel. Samples occupy the minimum integral number
of bytes. Read and write operations of arbitrary size are allowed.
.SH EXAMPLE
.LP
To use a USB mouse and audio device, put the following in your profile
(replace x by your favorite initial volume setting):
.PP
.EX
.ta 6n
if (test -r '#U'/usb0) {
usb/usbd
usb/usbmouse -a 2
usb/usbaudio -v x
}
.EE
.PP
Alternatively, just put
.B usbstart
in your profile.
.SH SOURCE
.B /sys/src/cmd/usb
.SH "SEE ALSO"
.IR usb (3),
.IR usbd (4)
|