Age | Commit message (Collapse) | Author |
|
fix NULL vs 0, etc. No behaviour change.
|
|
used as filename
|
|
|
|
|
|
|
|
no connections anymore.
|
|
if no files are given on the command line
|
|
or hardware. If a busy loop is found, then close the device that
caused the loop.
|
|
|
|
difference between audio files and client connections. Clean up
the way command line options are handled and clarify this in the
manual page: stream parameters (-Ccehjmrtvx) must precede stream
definitions (-ios) and per-device parameters (-abz) and stream
definitions (-ios) must precede device definitions (-f). Since
there's no ``server'' and ``non-server'' modes anymore, make the
-l option just detach the process.
ok and help from jakemsr and jmc
|
|
fixes crash found by nicm
ok ratchov
|
|
don't check if the midi control interface is idle
from ratchov
|
|
results in a use after free(). Catched by jakemsr@ with MALLOC_OPTIONS=J
|
|
open the device input-only if -o is used, and output-only if -i is
used).
|
|
of the data chuck returned in ``startpos''. Fixes MMC relocate being
off by few samples.
|
|
|
|
then terminate streams recording from the monitor (if any). Otherwise,
dev_close() would try to check if a stream is recording from the
hardware or the monitor, and, if there's no monitor, would dereference
a NULL pointer.
|
|
to quit. Otherwise streams that are not attached to the device are
not closed.
|
|
complicated. Instead, request clients to provide enough samples
and start with buffers full.
|
|
Add a new ``initial position'' message which is simpler. No bahaviour
change, except effects of the protocol version crank.
|
|
the device supports play or record modes respectively.
spotted by jakemsr
|
|
referencing it (for instance while a recording stream drains buffers
of a closed device). So, don't abort() if this happen.
|
|
This is necessary for uaudio devices, for instance to start aucat
before the device is plugged. Or to unplug a device whithout
having to restart aucat when another device is plugged. This is
controlled with the new -a option.
Allow multiple audio devices to be used concurently, i.e.
multiple ``-f devname'' options to be used; -f options must follow
per-device options, which is what we do for other options.
|
|
|
|
use this format instead of the non-extended one (ex. audio/libao)
spotted/suggested by naddy
|
|
midi client could start it with empty buffers, in turn hurting
audio clients.
|
|
is accounted as negative start position offset.
|
|
dev_sync() always discards any recorded samples
|
|
rec direction use the same clock, there's no need to maintain their
absolute position.
|
|
use play and rec latencies counters to calculate the offset
between play and rec direction. Greatly simplifies stream
attaching code.
|
|
as clock source for MIDI clients.
|
|
|
|
inputs, i.e. don't way that the output requests it.
|
|
disable overruns/underruns since aucat must pause when an input or
an output blocks. This is a theoretical fix, since the
start/stop code is never reached in loopback mode
|
|
and different device states. Split initialization in two phases:
first global variables are initialized then the audio hardware is opened.
Allow devices that don't support full-duplex to work in play-only or
record-only mode, even if ``-m play'' or ``-m rec'' are not specified.
|
|
might result in extra samples being written to the device
when the mixer is closed.
|
|
and poll()'s timeout. Simpler and more accurate, from midish
|
|
the first sample of the next block in advance.
|
|
|
|
amount of samples to commit to ``maxwrite''. Overwise uncommitted
samples are accounted as idle, in turn causing the device to be
stopped too early, possibly truncating few blocks at the end of
streams being drained.
subtle bug spotted and analysed by Thomas Pfaff, thanks
|
|
from Thomas Pfaff, thanks
|
|
|
|
run by root, it binds a shared address to the socket, cranks the
process priority and drops privileges. sio_open(3) will try to
connect to the private socket first (if any), then to the shared
socket. Only one user may have connections to aucat at a given
time.
based on discussions with henning, pyr and others
ok jacek, deraadt
|
|
command line, instead of the device parameters.
|
|
expand channels (ex mono->stereo). It's switched on/off with
the ``-j'' option, (default is "on").
|
|
the device channel range. This makes the channel mapping code
no longer usefuli, so remove it. No behaviour change.
|
|
|
|
|
|
- make the ``-m mode'' option per subdevice, allowing
subdevices to be play-only or rec-only even if the
server is full-duplex
- add ``monitoring'' mode (with ``-m mon''). This is a
record-only stream from which played streams can be
recorded (kind of ``record what you hear'').
- allow MIDI devices to be subscribed to the controlling
MIDI port of the server, ie what midicat does (with -f
option), but using the -q option.
- add flow control to the protocol, and serialize clock
ticks (sio_onmove() calls) and data chunks. This should
fix certain full-duplex programs, broken with ``magic''
block/buffer size combinations.
- enable 3 block latency which is the minimum theoretical.
Make -z and -b options correspond to device parameters.
- make sio_getcap(3) the same for aucat and sun backends,
ie return whatever is supported (``everything'' in the
aucat case, since everything is actulally supported).
aucat (player):
- enable ``-m mode'' option to select between monitoring
and recording when ``-o file'' is used.
- plug MIDI code to non-server codepath. The MIDI control
device is specified with the ``-q device'' option, as in
server mode.
- impliment lseek()'ing within files (controlled
through MIDI). Necessary to use aucat with a MIDI
sequencer.
midicat (thrubox):
- rename ``-f'' flag to ``-q'', so it has the
same name as in aucat (-f is still working)
ok jakemsr@, tweaks from jmc@
|
|
|