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.
Richard Kettlewell [Fri, 13 Mar 2009 20:33:19 +0000 (20:33 +0000)]
Merge playrtp readahead reduction
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!
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).
Richard Kettlewell [Sun, 8 Mar 2009 17:38:33 +0000 (17:38 +0000)]
Reduce playrtp readahead to 0.5s
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-)
Richard Kettlewell [Sun, 8 Mar 2009 14:02:07 +0000 (14:02 +0000)]
Merge volume and build fixes
Richard Kettlewell [Sun, 8 Mar 2009 14:01:44 +0000 (14:01 +0000)]
Merge configuration fixes
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.
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.
Richard Kettlewell [Sun, 8 Mar 2009 13:08:37 +0000 (13:08 +0000)]
get-volume shouldn't corrupt the volume!
Richard Kettlewell [Sun, 8 Mar 2009 13:01:09 +0000 (13:01 +0000)]
Build fixes for FreeBSD
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().
Richard Kettlewell [Sun, 8 Mar 2009 11:32:33 +0000 (11:32 +0000)]
Build fixes for uaudio ALSA/OSS backends.
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.
Richard Kettlewell [Tue, 3 Mar 2009 20:40:01 +0000 (20:40 +0000)]
uaudio_apis[] is a constant
Richard Kettlewell [Tue, 3 Mar 2009 19:40:33 +0000 (19:40 +0000)]
Abolish UAUDIO_DEFAULT
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.
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.
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.
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.
Richard Kettlewell [Sun, 1 Mar 2009 17:57:52 +0000 (17:57 +0000)]
Document disorder-playrtp --command in CHANGES.html
Richard Kettlewell [Sun, 1 Mar 2009 17:53:34 +0000 (17:53 +0000)]
Merge build fix
Richard Kettlewell [Sun, 1 Mar 2009 17:53:14 +0000 (17:53 +0000)]
uaudio-rtp.c builds on Mac
Richard Kettlewell [Sun, 1 Mar 2009 17:47:14 +0000 (17:47 +0000)]
Merge latest work from uniform audio branch. The only functional change
here is that disorder-playrtp supports playing into a command via a pipe
now.
Richard Kettlewell [Sun, 1 Mar 2009 17:45:15 +0000 (17:45 +0000)]
Support uniform audio command backend from disorder-playrtp. A useful
way to test it but potentially a useful feature too.
Richard Kettlewell [Sun, 1 Mar 2009 17:32:12 +0000 (17:32 +0000)]
Correct command FD!
Richard Kettlewell [Sun, 1 Mar 2009 17:10:35 +0000 (17:10 +0000)]
Uniform audio version of the command backend. No attempt to rate-limit
here, we just send audio data at the subprocess as fast as it can accept
it.
As tested as the RTP backend i.e. not.
Richard Kettlewell [Sun, 1 Mar 2009 16:53:06 +0000 (16:53 +0000)]
Uniform audio RTP implementation. Not tested yet!
Richard Kettlewell [Sun, 1 Mar 2009 13:09:43 +0000 (13:09 +0000)]
Merge from uniform audio branch. disorder-playrtp now uses the uaudio
code for OSS, ALSA and Core Audio and works on Linux, FreeBSD and MacOS.
A few build and documentation fixes come along with these changes.
Richard Kettlewell [Sun, 1 Mar 2009 12:59:42 +0000 (12:59 +0000)]
Merge disorder-playrtp docs fix
Richard Kettlewell [Sun, 1 Mar 2009 12:59:02 +0000 (12:59 +0000)]
Quieten autotools warning
Richard Kettlewell [Sun, 1 Mar 2009 12:42:21 +0000 (12:42 +0000)]
Improve disorder-playrtp docs/--help
Richard Kettlewell [Sun, 1 Mar 2009 12:09:40 +0000 (12:09 +0000)]
Fix uaudio-coreaudio.c after last change
Richard Kettlewell [Sun, 1 Mar 2009 12:01:34 +0000 (12:01 +0000)]
ALSA support for uniform audio. ALSA and OSS support now shares the
threading work, which is split into a collecter and a player thread
communicating via a ring of buffers.
New uaudio_set_format() allows caller to declare what the sample format
will be, giving us flexibility to do things other than 16/44100/2
(although not tested with other formats).
Core audio uniform audio support now supports more sample formats, and
checks that the channel count and rate are right. It doesn't
(currently) attempt to ask for different channel counts or rates.
Richard Kettlewell [Sat, 28 Feb 2009 18:18:44 +0000 (18:18 +0000)]
uaudio OSS support now compiles
Richard Kettlewell [Sat, 28 Feb 2009 17:50:53 +0000 (17:50 +0000)]
Uniform audio backend for Core Audio. There is an untested OSS one
and a placeholder RTP one lurking around too.
disorder-playrtp now uses the uniform audio interface (and is
considerably simplified as a result).
Richard Kettlewell [Sat, 28 Feb 2009 11:03:49 +0000 (11:03 +0000)]
Merge more Core Audio hackery from uaudio branch.
Richard Kettlewell [Sat, 28 Feb 2009 11:03:19 +0000 (11:03 +0000)]
Turns out that GetMacOSStatusErrorString() and
GetMacOSStatusCommentString() don't produce useful answers, at least
for sound-related errors. Users will just have to put up with numeric
error codes.
Thanks so much, Apple.
Richard Kettlewell [Sat, 28 Feb 2009 10:42:22 +0000 (10:42 +0000)]
Core Audio support should now include descriptions in error strings.
Not tested!
Richard Kettlewell [Sat, 28 Feb 2009 10:41:50 +0000 (10:41 +0000)]
typo fix
Richard Kettlewell [Sat, 28 Feb 2009 09:36:24 +0000 (09:36 +0000)]
Remove further databases on Debian remove/purge.
Richard Kettlewell [Sun, 22 Feb 2009 14:09:22 +0000 (14:09 +0000)]
Merge Core Audio fixes
Richard Kettlewell [Sun, 22 Feb 2009 14:00:46 +0000 (14:00 +0000)]
Support arbitrary Core Audio devices.
New files lib/coreaudio.[ch] contain the code for looking up devices
by name or UID and is used by the server and playrtp.
Fixes issue 27.
Richard Kettlewell [Sun, 22 Feb 2009 13:04:35 +0000 (13:04 +0000)]
disorderd does not (currently) need CoreAudio libraries, so don't link
against them.
Richard Kettlewell [Sat, 21 Feb 2009 20:43:33 +0000 (20:43 +0000)]
Remove fossils
There's only been one log implementation exported to plugins for ages.
As well as rationalizing the code in this light we make the disorder_
names the canonical ones and provide macros to make all the existing
code work. I don't see any need to convert code to use the canonical
names currently.
Richard Kettlewell [Sat, 21 Feb 2009 20:26:54 +0000 (20:26 +0000)]
mem-impl.h is no longer shared code, so remove
Richard Kettlewell [Sat, 21 Feb 2009 20:22:11 +0000 (20:22 +0000)]
Remove obsolete api-client.[ch]
Richard Kettlewell [Tue, 17 Feb 2009 20:16:23 +0000 (20:16 +0000)]
not 4.3 any more
Richard Kettlewell [Tue, 17 Feb 2009 18:58:41 +0000 (18:58 +0000)]
typo fixes and updates
Richard Kettlewell [Sun, 15 Feb 2009 15:50:00 +0000 (15:50 +0000)]
DisOrder 4.3
Richard Kettlewell [Sun, 15 Feb 2009 15:26:10 +0000 (15:26 +0000)]
Ship scripts/setversion; needed by new scripts/dist
Richard Kettlewell [Sun, 15 Feb 2009 12:48:33 +0000 (12:48 +0000)]
Bring CHANGES.html up to date
Richard Kettlewell [Sun, 15 Feb 2009 12:32:03 +0000 (12:32 +0000)]
Oldstabe version gets a ~-based version number.
Richard Kettlewell [Sun, 15 Feb 2009 12:19:36 +0000 (12:19 +0000)]
scripts/dist now builds and ships various .deb files
Richard Kettlewell [Sun, 15 Feb 2009 12:19:19 +0000 (12:19 +0000)]
Ship disorder-choose.8.in
Richard Kettlewell [Sun, 15 Feb 2009 11:39:46 +0000 (11:39 +0000)]
Set resource limits on the server to prevent more than FD_SETSIZE
files being opened. (It's not unusual for them to be set like this
anyway, but this change guarantees it.)
event.c also checks for FDs being in range.
Richard Kettlewell [Sat, 31 Jan 2009 14:57:30 +0000 (14:57 +0000)]
Apply the remains of Ross's patch to build on Ubuntu 8.10.
http://code.google.com/p/disorder/issues/detail?id=24
Richard Kettlewell [Sat, 31 Jan 2009 14:52:00 +0000 (14:52 +0000)]
README.developers tells you to install wget too.
Richard Kettlewell [Sat, 31 Jan 2009 14:50:52 +0000 (14:50 +0000)]
need vorbis-tools
Richard Kettlewell [Sat, 31 Jan 2009 12:55:37 +0000 (12:55 +0000)]
Disable -Wformat-security for t-printf, which deliberately uses some
dubious format strings. -Wformat-security goes back at least to GCC
3.0 so it's probably a safe bet to disable without a test.
http://code.google.com/p/disorder/issues/detail?id=24
Richard Kettlewell [Sat, 31 Jan 2009 12:45:22 +0000 (12:45 +0000)]
Kill off cgi_attr(), cgi_opentag() and cgi_closetag() which aren't
actually used (?any more).
http://code.google.com/p/disorder/issues/detail?id=24
Richard Kettlewell [Sat, 31 Jan 2009 12:33:59 +0000 (12:33 +0000)]
Set last_playing to NULL when we don't have up to date information
about the playing track (including, importantly, just after pausing).
column_length() returns NULL in this case, and ql_update_row() leaves
cells that have a NULL value along.
The effect is that the played so far indicator is left as it is until
we're sure what the right value is. Usually in fact it will already
be right, so we don't even lie; when it isn't, at least it jumps
around less before reaching the right value.
http://code.google.com/p/disorder/issues/detail?id=26
Richard Kettlewell [Sat, 31 Jan 2009 12:29:04 +0000 (12:29 +0000)]
Disobedience updates last_playing whenever a 'playing' command
completes now. This mostly keeps the played so far field correct
though it does briefly jump to a wrong value and then back when you
unpause.
http://code.google.com/p/disorder/issues/detail?id=26
Richard Kettlewell [Sun, 18 Jan 2009 16:26:39 +0000 (16:26 +0000)]
Support DEB_BUILD_OPTIONS=parallel=N
Richard Kettlewell [Sat, 17 Jan 2009 13:51:21 +0000 (13:51 +0000)]
Fix man page conflict
Richard Kettlewell [Sat, 17 Jan 2009 13:39:24 +0000 (13:39 +0000)]
Resolve another Lintian warning
Richard Kettlewell [Sat, 17 Jan 2009 13:31:37 +0000 (13:31 +0000)]
Add LSB init info
Richard Kettlewell [Sat, 17 Jan 2009 13:31:22 +0000 (13:31 +0000)]
Add a disorder-choose man page
Richard Kettlewell [Sat, 17 Jan 2009 12:54:09 +0000 (12:54 +0000)]
Use invoke-rc.d instead of accessing /etc/init.d directly. Lintian again.
Richard Kettlewell [Sat, 17 Jan 2009 12:48:19 +0000 (12:48 +0000)]
Resolve further Lintian warnings
Richard Kettlewell [Sat, 17 Jan 2009 12:33:57 +0000 (12:33 +0000)]
Resolve a bunch of Lintian warnings
Richard Kettlewell [Sat, 17 Jan 2009 12:33:28 +0000 (12:33 +0000)]
Fix typo in troff rune
Richard Kettlewell [Thu, 8 Jan 2009 12:15:57 +0000 (12:15 +0000)]
Add links to .deb source control file per
http://www.debian.org/doc/developers-reference/best-pkging-practices.html#bpp-debian-control
Richard Kettlewell [Sat, 3 Jan 2009 00:13:48 +0000 (00:13 +0000)]
restore db4.3 support (broken in previous commit)
Richard Kettlewell [Wed, 31 Dec 2008 14:13:45 +0000 (14:13 +0000)]
Reject db version 4.6 in configure.
Richard Kettlewell [Tue, 30 Dec 2008 23:42:42 +0000 (23:42 +0000)]
note that 4.6 does not wokr!
Richard Kettlewell [Tue, 30 Dec 2008 23:39:32 +0000 (23:39 +0000)]
fix-names script to mess with track filenames
Richard Kettlewell [Tue, 30 Dec 2008 21:24:46 +0000 (21:24 +0000)]
Close down databases on database-open error more carefuly. It would
be better to do this via an atexit() handler or something (with care
about subprocesses).
Richard Kettlewell [Tue, 30 Dec 2008 19:58:44 +0000 (19:58 +0000)]
disorder-choose aborts outstanding transaction before failing.
Richard Kettlewell [Tue, 30 Dec 2008 19:32:49 +0000 (19:32 +0000)]
disorderfm preserves permissions now
Richard Kettlewell [Tue, 30 Dec 2008 12:16:15 +0000 (12:16 +0000)]
Fix format string pedantry to build on 64-bit Linux
Richard Kettlewell [Sun, 28 Dec 2008 11:12:17 +0000 (11:12 +0000)]
Use a local implementation of strptime() instead of broken OS ones
Richard Kettlewell [Sun, 28 Dec 2008 11:10:39 +0000 (11:10 +0000)]
Use a local implementation of strptime() instead of broken OS ones
Richard Kettlewell [Tue, 23 Dec 2008 21:00:17 +0000 (21:00 +0000)]
Correct glob m4 quoting
Richard Kettlewell [Tue, 23 Dec 2008 20:57:49 +0000 (20:57 +0000)]
Guess sox generation in configure script
Richard Kettlewell [Tue, 23 Dec 2008 20:56:31 +0000 (20:56 +0000)]
add adopt to completions
Richard Kettlewell [Sat, 13 Dec 2008 16:17:40 +0000 (16:17 +0000)]
Update documentation
Richard Kettlewell [Sat, 13 Dec 2008 16:10:44 +0000 (16:10 +0000)]
Mention track adoption in CHANGES.
Richard Kettlewell [Sat, 13 Dec 2008 16:07:06 +0000 (16:07 +0000)]
Disobedience can now adopt tracks.
Richard Kettlewell [Sat, 13 Dec 2008 15:53:22 +0000 (15:53 +0000)]
Disobedience notices when tracks are adopted now.
Richard Kettlewell [Sat, 13 Dec 2008 15:48:31 +0000 (15:48 +0000)]
Add 'adopt' command. This adopts a randomly picked track by changing
its origin to 'adopted' and its submitter to the calling user. The
nice UIs don't support this yet but you can access it from the command
line.
Document 'origin' and update 'state' in disorder_protocol(5).
Richard Kettlewell [Mon, 8 Dec 2008 19:28:25 +0000 (19:28 +0000)]
Quieten compiler
Richard Kettlewell [Sun, 7 Dec 2008 20:20:51 +0000 (20:20 +0000)]
Replace rather bizarre 'select all' in choose tab with 'select
children' which (after jumping through some hoops) selects just the
file children of the selected directory.
Updated the Disobedience documentation a bit.
Richard Kettlewell [Sat, 6 Dec 2008 22:44:43 +0000 (22:44 +0000)]
setversion script for test builds
Richard Kettlewell [Sat, 6 Dec 2008 21:47:04 +0000 (21:47 +0000)]
Silence compiler warning
Richard Kettlewell [Sat, 6 Dec 2008 14:50:58 +0000 (14:50 +0000)]
new target to remove coverage droppings
Richard Kettlewell [Sat, 6 Dec 2008 14:41:15 +0000 (14:41 +0000)]
Changes to HTML coverage output:
- include missing files in the main table
- CSS bar graph of coverage
Richard Kettlewell [Sat, 6 Dec 2008 14:24:24 +0000 (14:24 +0000)]
more coverage + doxygen
Richard Kettlewell [Sat, 6 Dec 2008 14:04:05 +0000 (14:04 +0000)]
make sure gcov reports generated after all tests complete