Age | Commit message (Collapse) | Author |
|
|
|
outputs anymore, otherwise they can't be cleaned up by dev_close()
|
|
dynamic range of 24-bit hardware can be used. Offline processing like
mixing and channel mapping is done with 24-bit precision too.
Since most hardware and audio programs use 16-bit precision, 24-bit
processing is a small waste of CPU time in many cases, so 24-bit
processing is not desirable and this is disabled by default.
Furthermore it's available on i386, amd64 and sparc64 only. To
experiment with it:
make COPTS="-DADATA_BITS=24"
|
|
|
|
than s16 (using hardcoded constants). Currently s16 is the native format,
so no behavior change.
|
|
audio samples and cleanup ADATA_XXX macros. This allows easilly
switching to 24 bit fixed point arithmetic by simply redefining
the adata_t typedef to int and updating ADATA_XXX macros. No
object change.
|
|
|
|
possibly blocked streams are processed. If during this phase the end
of another stream is reached then stop the processing because the job
will be already finished by the second stream. Otherwise we may end up
running a destroyed stream.
help from Edward Wandasiewicz <w13ntd at googlemail.com>, thanks
|
|
|
|
AMSG_xxx macros, which in turns simplifies the code
|
|
device with the required mode
|
|
is not a proper error message.
|
|
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.
|