chiark / gitweb /
disorder
15 years agodisorder-playrtp now prefers to drop silent packets (rather than
Richard Kettlewell [Sat, 18 Apr 2009 12:44:05 +0000 (13:44 +0100)]
disorder-playrtp now prefers to drop silent packets (rather than
filling up buffers and having the OS eventually drop them from the
input socket's buffer).

15 years agodisorder-playrtp --monitor option to keep track of how far off
Richard Kettlewell [Sat, 18 Apr 2009 11:12:24 +0000 (12:12 +0100)]
disorder-playrtp --monitor option to keep track of how far off
minbuffer we are.

15 years agoRestructure play.c to make start()/prepare() distinction clearer.
Richard Kettlewell [Mon, 13 Apr 2009 17:13:53 +0000 (18:13 +0100)]
Restructure play.c to make start()/prepare() distinction clearer.
The common code is moved to background.c.

It's now more likely that an (essentially spurious) "cannot play track
because no connection arrived" message will be logged.  See speaker.c
for full discussion.

15 years agoSpot changes to database parameters and rebuild database.
Richard Kettlewell [Mon, 13 Apr 2009 16:30:26 +0000 (17:30 +0100)]
Spot changes to database parameters and rebuild database.

This change stores a hash of the current database parameters, i.e.
options that affect alias construction, the search database, etc in the
database.  If it is missing or changes then aliases and the search
database are deleted and recomputed.

15 years agodocument latest upgrade issues
Richard Kettlewell [Mon, 13 Apr 2009 15:16:11 +0000 (16:16 +0100)]
document latest upgrade issues

15 years agotypo fix
Richard Kettlewell [Mon, 13 Apr 2009 00:07:40 +0000 (01:07 +0100)]
typo fix

15 years agoInitialize queue_entry.pid.
Richard Kettlewell [Sun, 12 Apr 2009 23:54:17 +0000 (00:54 +0100)]
Initialize queue_entry.pid.

15 years agoRemember to initialize queue_entry.pid where it needs to be.
Richard Kettlewell [Sun, 12 Apr 2009 23:47:51 +0000 (00:47 +0100)]
Remember to initialize queue_entry.pid where it needs to be.

15 years agoMissing initializers, unaccountably not spotted by lenny's GCC!
Richard Kettlewell [Sun, 12 Apr 2009 20:35:45 +0000 (21:35 +0100)]
Missing initializers, unaccountably not spotted by lenny's GCC!

15 years agoNote in various places that reconfiguring the server won't pick up all
Richard Kettlewell [Sun, 12 Apr 2009 20:31:22 +0000 (21:31 +0100)]
Note in various places that reconfiguring the server won't pick up all
changes and in some cases will reject them.

Specifics in disorder_config(5), for some options; those that aren't
updated may be changed in the near future.

Document more consistently that 'lock' and 'gap' do nothing.

Correct apostrophe l-)

15 years agoWarn on attempts to change nice_server during server lifetime.
Richard Kettlewell [Sun, 12 Apr 2009 20:30:59 +0000 (21:30 +0100)]
Warn on attempts to change nice_server during server lifetime.

15 years agoAlways take out a server lock.
Richard Kettlewell [Sun, 12 Apr 2009 20:20:28 +0000 (21:20 +0100)]
Always take out a server lock.

15 years agoMove player/decoder PIDs back into the main queue_entry structure, now
Richard Kettlewell [Sun, 12 Apr 2009 19:56:50 +0000 (20:56 +0100)]
Move player/decoder PIDs back into the main queue_entry structure, now
that queues aren't dumped and reloaded in reconfigure.

15 years agoReload now no longer cycles the database handles or reloads the queue.
Richard Kettlewell [Sun, 12 Apr 2009 19:39:20 +0000 (20:39 +0100)]
Reload now no longer cycles the database handles or reloads the queue.
Both operations are pretty pointless now that we enforce a fixed home
directory.  This also means we'll be able to stash more useful stuff in
queue structures.

15 years agoCheck namepart/stopword don't change across reload.
Richard Kettlewell [Sun, 12 Apr 2009 19:38:48 +0000 (20:38 +0100)]
Check namepart/stopword don't change across reload.

15 years agoDo some basic compatibility checking when installing a new server
Richard Kettlewell [Sun, 12 Apr 2009 16:52:03 +0000 (17:52 +0100)]
Do some basic compatibility checking when installing a new server
configuration.  There is plenty more that could be done.

15 years agoNote that prefsync doesn't do anything any more.
Richard Kettlewell [Sun, 12 Apr 2009 15:29:04 +0000 (16:29 +0100)]
Note that prefsync doesn't do anything any more.

15 years agoAdd README.reload as an aide-memoire regarding configuration handling.
Richard Kettlewell [Sun, 12 Apr 2009 15:28:42 +0000 (16:28 +0100)]
Add README.reload as an aide-memoire regarding configuration handling.

15 years agoMore comments.
Richard Kettlewell [Sun, 12 Apr 2009 15:00:06 +0000 (16:00 +0100)]
More comments.

15 years agoAdd many comments to server/play.c, in advance of possible
Richard Kettlewell [Sun, 12 Apr 2009 14:36:11 +0000 (15:36 +0100)]
Add many comments to server/play.c, in advance of possible
reorganization.

15 years ago--wait-for-device is now deprecated.
Richard Kettlewell [Sun, 12 Apr 2009 14:35:46 +0000 (15:35 +0100)]
--wait-for-device is now deprecated.

15 years ago55-pixel logo (for Google Code page)
Richard Kettlewell [Sun, 12 Apr 2009 12:50:22 +0000 (13:50 +0100)]
55-pixel logo (for Google Code page)

15 years agoupdate CHANGES
Richard Kettlewell [Sat, 11 Apr 2009 20:02:27 +0000 (21:02 +0100)]
update CHANGES

15 years agoMerge audio timing fix branch.
Richard Kettlewell [Sat, 11 Apr 2009 19:59:14 +0000 (20:59 +0100)]
Merge audio timing fix branch.

15 years agoBump up default RTP player buffer sizes. Now big enough to keep ALSA
Richard Kettlewell [Sat, 11 Apr 2009 19:53:12 +0000 (20:53 +0100)]
Bump up default RTP player buffer sizes.  Now big enough to keep ALSA
(first doubling) and ALSA's OSS emulation (second doubling) fed.  The
initial buffer size is still under half a second, and feels close to
instant to this listener.

Also, the player thread now consumes packets immediately rather than
waiting for the next iteration, preventing a race where the (inner)
playing loop at the bottom of main() can terminate unnecessarily
early.

There's bits of debugging code left lying around commented out.  It's
harmless for now!

15 years agoLarger silent interval for pauses; spinning in sub-millisecond
Richard Kettlewell [Sat, 11 Apr 2009 19:47:50 +0000 (20:47 +0100)]
Larger silent interval for pauses; spinning in sub-millisecond
nanosleeps is a bit excessive.

15 years agoAbolish playrtp's "readahead" variable (and associated -b option).
Richard Kettlewell [Sat, 11 Apr 2009 19:13:04 +0000 (20:13 +0100)]
Abolish playrtp's "readahead" variable (and associated -b option).
There's just minbuffer and maxbuffer now.  minbuffer has the same
meaning as before but is additionally used for what readahead used to
be.  maxbuffer defaults to 2*minbuffer.

The man page mentions them, but refers you to the source code, which
now goes into more detail in comment than it did before.

playrtp also no longer adjusts the socket buffer size, accepting the
operating system's default.  Even the relatively small (~40K) Mac one
gives us a couple of dozen typical-sized packets; experimentally it's
quite enough to cope even with a 'make -j' of DisOrder running on the
same host.

15 years agoMacOS build fix
Richard Kettlewell [Sat, 11 Apr 2009 18:54:19 +0000 (19:54 +0100)]
MacOS build fix

15 years agoRewrite uaudio-schedule.c. It's now much simpler and should actually
Richard Kettlewell [Sat, 11 Apr 2009 16:56:25 +0000 (17:56 +0100)]
Rewrite uaudio-schedule.c.  It's now much simpler and should actually
get the timing right.  An hour of rtpmon is encouraging.

This change pushes responsibility for pausing out towards the APIs.

For ALSA we sleep a bit.  For OSS we close the sound device and sleep a
bit.

For RTP we just pretend to send packets; the scheduler takes care of the
timing.

For command again the scheduler takes care of the timing, though as
before we have the option of either suspending writes or sending 0s.

Scantily tested!

15 years agoCompute rate over a longer interval.
Richard Kettlewell [Sat, 11 Apr 2009 15:46:27 +0000 (16:46 +0100)]
Compute rate over a longer interval.

15 years agortpmon now reports once a second, rather than based on numbers of
Richard Kettlewell [Sat, 11 Apr 2009 09:33:13 +0000 (10:33 +0100)]
rtpmon now reports once a second, rather than based on numbers of
packets received.

15 years agoNew debugging program: rtpmon. This listens for packets the same way
Richard Kettlewell [Sat, 11 Apr 2009 09:22:37 +0000 (10:22 +0100)]
New debugging program: rtpmon.  This listens for packets the same way
disorder-playrtp does (and ought to be de-duped against it), and
periodically displays the sample rate over various intervals.

As the code stands the longest-term column is consistently showing
44105Hz, which since it's faster than the rate the sound is played at
will eventually fill up playrtp's (and the kernel's) buffers and force
packets to be dropped, affecting playback quality.

15 years agodisorder-playrtp now includes timestamps in its log output (which
Richard Kettlewell [Sun, 5 Apr 2009 15:08:28 +0000 (16:08 +0100)]
disorder-playrtp now includes timestamps in its log output (which
includes error messages); the reasoning being that timing information
may be especially useful when debugging it.

The server logs to syslog, which already has timestamps.

Other programs could easily have this feature enabled if necessary.

15 years agoREADME mentions Python 2.5 now
Richard Kettlewell [Sun, 5 Apr 2009 14:11:01 +0000 (15:11 +0100)]
README mentions Python 2.5 now

15 years agoREADME.developers now reflects uaudio
Richard Kettlewell [Sun, 5 Apr 2009 14:04:10 +0000 (15:04 +0100)]
README.developers now reflects uaudio

15 years agoupdate copyright date
Richard Kettlewell [Sun, 5 Apr 2009 11:31:13 +0000 (12:31 +0100)]
update copyright date

15 years agoPython module now supports the same authorization hash functions as C.
Richard Kettlewell [Sun, 5 Apr 2009 11:28:33 +0000 (12:28 +0100)]
Python module now supports the same authorization hash functions as C.
This means we need at least Python 2.5 (which shouldn't be a very
onerous requirement any more!)

15 years agouse explicit port number
Richard Kettlewell [Sun, 5 Apr 2009 11:07:10 +0000 (12:07 +0100)]
use explicit port number

15 years agoMerge Unicode 5.1.0 support.
Richard Kettlewell [Sun, 5 Apr 2009 10:07:31 +0000 (11:07 +0100)]
Merge Unicode 5.1.0 support.

15 years agoMention Unicode 5.1.0 in CHANGES.html.
Richard Kettlewell [Sun, 5 Apr 2009 10:07:04 +0000 (11:07 +0100)]
Mention Unicode 5.1.0 in CHANGES.html.

15 years agoDon't look up before/after code points more than once in word boundary
Richard Kettlewell [Sun, 5 Apr 2009 10:05:51 +0000 (11:05 +0100)]
Don't look up before/after code points more than once in word boundary
detection.

15 years agoRename word break property values
Richard Kettlewell [Sun, 5 Apr 2009 09:59:17 +0000 (10:59 +0100)]
Rename word break property values

15 years agoUpdate word break algorithm for Unicode 5.1.0 (based on UAX #29).
Richard Kettlewell [Sun, 5 Apr 2009 09:56:55 +0000 (10:56 +0100)]
Update word break algorithm for Unicode 5.1.0 (based on UAX #29).
We look up the word break property more than once, which is ugly, so
some further work wouldn't be out of place.

15 years agoUpdate grapheme break algorithm to Unicode 5.1.0 (based on UAX #29)
Richard Kettlewell [Sun, 5 Apr 2009 09:45:15 +0000 (10:45 +0100)]
Update grapheme break algorithm to Unicode 5.1.0 (based on UAX #29)

15 years agoUse Unicode 5.1.0 for tables and tests. Approx 200 failures currently.
Richard Kettlewell [Sun, 5 Apr 2009 09:44:49 +0000 (10:44 +0100)]
Use Unicode 5.1.0 for tables and tests.  Approx 200 failures currently.

15 years agoMissing address family member in sockaddrs.
Richard Kettlewell [Sun, 5 Apr 2009 09:28:13 +0000 (10:28 +0100)]
Missing address family member in sockaddrs.

15 years agoDiscard update-rc.d output
Richard Kettlewell [Sat, 4 Apr 2009 16:48:30 +0000 (17:48 +0100)]
Discard update-rc.d output

15 years agoOverride lintian warning about start-stop-daemon
Richard Kettlewell [Sat, 4 Apr 2009 16:47:05 +0000 (17:47 +0100)]
Override lintian warning about start-stop-daemon

15 years agoUse command instead of type, for greater portability
Richard Kettlewell [Sat, 4 Apr 2009 16:39:18 +0000 (17:39 +0100)]
Use command instead of type, for greater portability

15 years agoCorrect debian changelog name
Richard Kettlewell [Sat, 4 Apr 2009 16:35:43 +0000 (17:35 +0100)]
Correct debian changelog name

15 years agoStrip installed objects in .debs
Richard Kettlewell [Sat, 4 Apr 2009 16:33:40 +0000 (17:33 +0100)]
Strip installed objects in .debs

15 years ago.debs now have md5sums
Richard Kettlewell [Sat, 4 Apr 2009 16:27:44 +0000 (17:27 +0100)]
.debs now have md5sums

15 years agoAnother man page hyphen fix
Richard Kettlewell [Sat, 4 Apr 2009 13:24:49 +0000 (14:24 +0100)]
Another man page hyphen fix

15 years agoMan page hyphen fixes
Richard Kettlewell [Sat, 4 Apr 2009 13:22:04 +0000 (14:22 +0100)]
Man page hyphen fixes

15 years agoMerge from OS X GTK+ branch
Richard Kettlewell [Sun, 22 Mar 2009 20:38:31 +0000 (20:38 +0000)]
Merge from OS X GTK+ branch

15 years ago--with-gtk-osx option to use native GTK+ on macs
Richard Kettlewell [Sun, 22 Mar 2009 20:36:50 +0000 (20:36 +0000)]
--with-gtk-osx option to use native GTK+ on macs

15 years agoRemove obsolete alsabg.[ch]
Richard Kettlewell [Sat, 14 Mar 2009 21:21:56 +0000 (21:21 +0000)]
Remove obsolete alsabg.[ch]

15 years agoMissing doxygen @file sections
Richard Kettlewell [Sat, 14 Mar 2009 21:21:02 +0000 (21:21 +0000)]
Missing doxygen @file sections

15 years agoMore doxygen tidy-up
Richard Kettlewell [Sat, 14 Mar 2009 21:16:49 +0000 (21:16 +0000)]
More doxygen tidy-up

15 years agoA little doxygen tidy-up
Richard Kettlewell [Sat, 14 Mar 2009 20:59:50 +0000 (20:59 +0000)]
A little doxygen tidy-up

15 years agoupdate CHANGES.html
Richard Kettlewell [Sat, 14 Mar 2009 20:31:29 +0000 (20:31 +0000)]
update CHANGES.html

15 years agoMerge config aliasing bug fix.
Richard Kettlewell [Sat, 14 Mar 2009 19:03:08 +0000 (19:03 +0000)]
Merge config aliasing bug fix.

15 years agoZero out configuration strings when they are freed.
Richard Kettlewell [Sat, 14 Mar 2009 19:00:52 +0000 (19:00 +0000)]
Zero out configuration strings when they are freed.
This means that aliased configuration items aren't double-freed.

15 years agoDocument -4/-6 for listen, connect etc.
Richard Kettlewell [Sat, 14 Mar 2009 17:09:50 +0000 (17:09 +0000)]
Document -4/-6 for listen, connect etc.

15 years agoconnect uses new network address support
Richard Kettlewell [Sat, 14 Mar 2009 16:15:12 +0000 (16:15 +0000)]
connect uses new network address support

This include Disobedience.  IPv6 works at least to loopback...

15 years ago'listen' option now uses struct netaddress too.
Richard Kettlewell [Sat, 14 Mar 2009 15:48:24 +0000 (15:48 +0000)]
'listen' option now uses struct netaddress too.

If '*' is used then it will bind to the IPv6 default listen address and
then report an error trying to bind to the IPv4 address.  In fact this
is harmless as the socket will accept connections of both kinds.

15 years agoStart rationalizing network address configuration.
Richard Kettlewell [Sat, 14 Mar 2009 14:56:56 +0000 (14:56 +0000)]
Start rationalizing network address configuration.

New 'struct netaddress' has address family, address and port.  Family
can be unspecified (effectively, let the OS choose), IPv4, IPv6 or UNIX
domain sockets (though in practice the latter won't work well in most
contexts).

The RTP server configuration uses this logic.

15 years agoCorrect setting of rtp-source-port.
Richard Kettlewell [Sat, 14 Mar 2009 11:41:40 +0000 (11:41 +0000)]
Correct setting of rtp-source-port.

15 years agoTests use 'api rtp' to avoid (harmless) error message
Richard Kettlewell [Sat, 14 Mar 2009 11:41:15 +0000 (11:41 +0000)]
Tests use 'api rtp' to avoid (harmless) error message

15 years agoHorrid hack to recover run-time endianness for testing.
Richard Kettlewell [Sat, 14 Mar 2009 11:33:35 +0000 (11:33 +0000)]
Horrid hack to recover run-time endianness for testing.

15 years agotracklength plugin needs -lm
Richard Kettlewell [Sat, 14 Mar 2009 10:56:02 +0000 (10:56 +0000)]
tracklength plugin needs -lm
Fixes http://code.google.com/p/disorder/issues/detail?id=33

15 years agoMerge uaudio stragglers.
Richard Kettlewell [Sat, 14 Mar 2009 10:49:33 +0000 (10:49 +0000)]
Merge uaudio stragglers.

The command backend's pause mode is now configurable, both for server
and disorder-playrtp.

15 years agoMerge from uaudio branch.
Richard Kettlewell [Sat, 14 Mar 2009 10:42:26 +0000 (10:42 +0000)]
Merge from uaudio branch.

In summary:
  - disorder-speaker now uses uaudio and should have more reliable
    gapless play
  - volume setting now uses uaudio
  - the command backend now uses the same scheduling mechanism
    as rtp, and sends silence for pauses
  - multicast API fixes
  - gcrypt API usage fixes

15 years agodisorder-speaker now correctly listens for its own 'sigpipe'
Richard Kettlewell [Sat, 14 Mar 2009 10:22:11 +0000 (10:22 +0000)]
disorder-speaker now correctly listens for its own 'sigpipe'
notifications.  This bug stopped gapless play working properly with
low-latency audio backends.

It also has much more conservative locking.

The callback now logs again when it has to play silence.

15 years agoExpose command backend pause mode to server configuration as well.
Richard Kettlewell [Sat, 14 Mar 2009 09:37:36 +0000 (09:37 +0000)]
Expose command backend pause mode to server configuration as well.

15 years agotypo fix
Richard Kettlewell [Sat, 14 Mar 2009 09:35:10 +0000 (09:35 +0000)]
typo fix

15 years agoThe command backend now supports the old (suspending) and new
Richard Kettlewell [Sat, 14 Mar 2009 09:28:20 +0000 (09:28 +0000)]
The command backend now supports the old (suspending) and new
(silence) pause behaviors via an option.  disorder-playrtp gains
--pause-mode t o set this option.

15 years agoThe command backend now sends 0s rather than suspending output when a
Richard Kettlewell [Fri, 13 Mar 2009 21:42:33 +0000 (21:42 +0000)]
The command backend now sends 0s rather than suspending output when a
pause occurs.  This saves the receiver from having to infer pauses
from flow control.  It could usefuly be made into an option.

15 years agoSplit up the multicast and unicast cases in disorder-playrtp; the
Richard Kettlewell [Fri, 13 Mar 2009 21:41:16 +0000 (21:41 +0000)]
Split up the multicast and unicast cases in disorder-playrtp; the
apparent commonalities are not enough to be worth interleaving the two
cases.

In the multicast case, bind to the multicast address explicitly,
thereby allowing multiple processes on the same host to receive the
multicast packets.

15 years agodisorder-playrtp now releases its lock around activate/deactivate
Richard Kettlewell [Fri, 13 Mar 2009 21:05:44 +0000 (21:05 +0000)]
disorder-playrtp now releases its lock around activate/deactivate
calls.  This necessary since deactivate may block if a sample
collection callback is still running (in this case it will be blocked
indefinitely).  It actually happens with the Core Audio backend but it
could apply to other APIs too.

15 years agoMerge playrtp readahead reduction
Richard Kettlewell [Fri, 13 Mar 2009 20:33:19 +0000 (20:33 +0000)]
Merge playrtp readahead reduction

15 years agoDon't activate pending track until the previous track is actually finished!
Richard Kettlewell [Wed, 11 Mar 2009 09:16:41 +0000 (09:16 +0000)]
Don't activate pending track until the previous track is actually finished!

15 years agoClean up online registration confirmation strings. Now they are
Richard Kettlewell [Tue, 10 Mar 2009 22:09:20 +0000 (22:09 +0000)]
Clean up online registration confirmation strings.  Now they are
username/base62(random).

15 years agoReduce playrtp readahead to 0.5s
Richard Kettlewell [Sun, 8 Mar 2009 17:38:33 +0000 (17:38 +0000)]
Reduce playrtp readahead to 0.5s

15 years agoMore reliable gapless play.
Richard Kettlewell [Sun, 8 Mar 2009 16:58:32 +0000 (16:58 +0000)]
More reliable gapless play.

The problem is the deactivate/activate calls, which introduce a period
of silence related to the length of time it takes the server to send
an SM_PLAY in response to SM_FINISHED.

The solution is for the speaker to lie to the server, and pretend that
tracks have finished 0.5-1s before they really have.  This requires
mild ugliness scattered through the speaker process to maintain the
illusion, but keeps ugliness out of your ears l-)

15 years agoMerge volume and build fixes
Richard Kettlewell [Sun, 8 Mar 2009 14:02:07 +0000 (14:02 +0000)]
Merge volume and build fixes

15 years agoMerge configuration fixes
Richard Kettlewell [Sun, 8 Mar 2009 14:01:44 +0000 (14:01 +0000)]
Merge configuration fixes

15 years agouaudio gains a new 'configure' method, which imposes the audio API's
Richard Kettlewell [Sun, 8 Mar 2009 13:53:24 +0000 (13:53 +0000)]
uaudio gains a new 'configure' method, which imposes the audio API's
configuration from the global (configuration.h) config.  This gets
network play working again.

There's a new configuration option, rtp_delay_threshold, which allows
the courageous to influence the internal timings of the RTP
transmitter.  The defaults seem to work however.

The reason it doesn't go directly to global config is that uaudio
needs to be usable from playrtp, which might want to be set to totally
different settings to whatever the local DisOrder server instance
happens to be.

15 years agogcrypt initialization to suppress warning message. Not really
Richard Kettlewell [Sun, 8 Mar 2009 13:34:33 +0000 (13:34 +0000)]
gcrypt initialization to suppress warning message.  Not really
anything to do with the uaudio branch as such but found here and
fixing it here will likely save a conflict when we merge.

15 years agoget-volume shouldn't corrupt the volume!
Richard Kettlewell [Sun, 8 Mar 2009 13:08:37 +0000 (13:08 +0000)]
get-volume shouldn't corrupt the volume!

15 years agoBuild fixes for FreeBSD
Richard Kettlewell [Sun, 8 Mar 2009 13:01:09 +0000 (13:01 +0000)]
Build fixes for FreeBSD

15 years agobasen() now takes uint32_t rather than unsigned long, since that's
Richard Kettlewell [Sun, 8 Mar 2009 12:03:58 +0000 (12:03 +0000)]
basen() now takes uint32_t rather than unsigned long, since that's
what it actually assumes.

New function nesab() is the reverse of basen().

15 years agoBuild fixes for uaudio ALSA/OSS backends.
Richard Kettlewell [Sun, 8 Mar 2009 11:32:33 +0000 (11:32 +0000)]
Build fixes for uaudio ALSA/OSS backends.

15 years ago'api' configuration command now uses uaudio. The list of APIs is only
Richard Kettlewell [Sun, 8 Mar 2009 11:28:22 +0000 (11:28 +0000)]
'api' configuration command now uses uaudio.  The list of APIs is only
available in server processes (since it currently drags in the API
implementations which in turn drags in external audio support
libraries, which extends the dependencies of the command-line client
unacceptable).

disorder-speaker now uses uaudio, abolishing the various speaker-*.c
API-specific files.

uaudio now handles volume control as well as playback, abolishing
mixer.h et al.

"rtp" is the preferred name for the RTP API.  "network" is retained
for backward compatibility.

Lightly tested - works for local play on a Mac.

15 years agouaudio_apis[] is a constant
Richard Kettlewell [Tue, 3 Mar 2009 20:40:01 +0000 (20:40 +0000)]
uaudio_apis[] is a constant

15 years agoAbolish UAUDIO_DEFAULT
Richard Kettlewell [Tue, 3 Mar 2009 19:40:33 +0000 (19:40 +0000)]
Abolish UAUDIO_DEFAULT

15 years agoRestore uaudio_apis[], but in a separate executable to avoid everything
Richard Kettlewell [Tue, 3 Mar 2009 19:37:37 +0000 (19:37 +0000)]
Restore uaudio_apis[], but in a separate executable to avoid everything
having to be linked against audio libraries.

15 years agoAdd xcalloc_noptr(), which allows uaudio-thread.c to ask for
Richard Kettlewell [Sun, 1 Mar 2009 19:13:49 +0000 (19:13 +0000)]
Add xcalloc_noptr(), which allows uaudio-thread.c to ask for
pointerless buffers.  Also convenient for unicode.c.

15 years agoUniform audio command back end now rate limited.
Richard Kettlewell [Sun, 1 Mar 2009 19:01:36 +0000 (19:01 +0000)]
Uniform audio command back end now rate limited.
The algorithm is the same as for the RTP backend, and is therefore
split out into a separate file, uaudio-schedule.c.

15 years agoAbolish uaudio_apis[]. Instead, define UAUDIO_DEFAULT to indicate
Richard Kettlewell [Sun, 1 Mar 2009 18:07:39 +0000 (18:07 +0000)]
Abolish uaudio_apis[].  Instead, define UAUDIO_DEFAULT to indicate
default sound API.  This saves e.g. uaudio_rtp being linked into
disorder-playrtp.  It does mean that users need more knowledge of
available APIs, but since they need to know what options to set that's
not much of an extra burden.