Commit Graph

1250 Commits

Author SHA1 Message Date
J. Alexander Treuman
5e1deab05f decode: close audio device after initial open if paused
Currently, if we start decoding while the pause flag is set, we open the
audio device and leave it opened, blocking other apps from using it.  The
obvious thing to do is to not open the audio device if the pause flag is
set, but the open call also sets the audio format.  Therefore I'm leaving
the open call in, and just closing it immediately afterwards if the pause
flag is set.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6745 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-08-12 19:23:48 +00:00
J. Alexander Treuman
d286294805 decode: reformatting for better readability
git-svn-id: https://svn.musicpd.org/mpd/trunk@6742 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-08-12 19:15:06 +00:00
J. Alexander Treuman
3fedc4d806 audioOutputs/audioOutput_shout: adding timers back
The shout plugin will now feign playback until the connect timeout is hit,
preventing connection attempts from blocking playback on local outputs.
Note that this patch is very different from remiss' original one.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6738 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-08-11 21:36:23 +00:00
Qball Cow
e195fb8100 Cleanup a outcommented debug statement
git-svn-id: https://svn.musicpd.org/mpd/trunk@6736 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-08-11 11:36:13 +00:00
Qball Cow
4811eadb4a Extra debug output
git-svn-id: https://svn.musicpd.org/mpd/trunk@6689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-07-16 20:31:37 +00:00
J. Alexander Treuman
54e6b27989 log: flush the warning log after redirecting stderr to the log files
Previously, the warning log was only flushed if creating the db or logging
to stdout.  This meant that under normal circumstances (no db creation,
logging to files) the warning log was never flushed.  This caused a bug
when a warning was printed for each call to the status command where the
warning buffer would grow endlessly, eventually using more and more CPU to
reallocate it.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6660 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-29 18:41:02 +00:00
J. Alexander Treuman
5a2f854914 replayGain: adding DEBUG messages when computing scale
git-svn-id: https://svn.musicpd.org/mpd/trunk@6658 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-25 14:34:40 +00:00
J. Alexander Treuman
f66b834f8f inputPlugins/wavpack_plugin: enable ReplayGain code
Turns out the fix was as simple as specifying the OPEN_TAGS flag when
opening the file.  Thanks again to Kodest for figuring this one out.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6657 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-25 14:24:30 +00:00
J. Alexander Treuman
f83d1aa460 inputPlugins/wavpack_plugin: adding dummy code for ReplayGain support
This ReplayGain code is currently disabled because WavpackGetTagItem can't
seem to find replaygain_* fields in APEv2 tags (which is how wvgain stores
ReplayGain values).  Additionally, because APEv2 tags are stored at the end
of the file, this code is only implemented for regular files and not HTTP
streams.  Using HTTP seeking it *may* be possible to implement it for both.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6656 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-25 13:37:21 +00:00
J. Alexander Treuman
ac5a7c2d82 decode: prefer fileDecodeFunc over streamDecodeFunc for files
Only wavpack implements both fileDecodeFunc and streamDecodeFunc, and it's
fileDecodeFunc provides more functionality.  So try using that first.

This commit also fixes a bug where the plugin test loop wouldn't break once
a suitable plugin was found if it used fileDecodeFunc.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6655 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-25 13:22:51 +00:00
J. Alexander Treuman
ff6a8e2ade Updating Kodest's name/email.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6654 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-25 12:13:45 +00:00
J. Alexander Treuman
db47ab163a Adding WavPack support. Patch courtesy Kodest.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6651 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-24 20:40:04 +00:00
J. Alexander Treuman
df32eed2cc Use parsePath for the fifo output's path parameter.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6623 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-13 15:37:46 +00:00
J. Alexander Treuman
c734c13b5c Adding parsePath and making parseConfigFilePath use it.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6622 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-13 15:27:09 +00:00
J. Alexander Treuman
b496239e76 Adding FIFO audio output. This is pretty much identical to the old one,
except that it now uses a timer for throttling.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6621 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-13 14:15:30 +00:00
J. Alexander Treuman
8de17dbed0 Use <= when comparing (current time - start time) to a timeout. This way
if the clock ticks right after we get the start time and the timeout is
only one second, we'll still wait a full second instead of returning
immediately.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6557 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 18:33:26 +00:00
J. Alexander Treuman
6f2be47270 Make the shout timeout configurable. The default is still 2 seconds.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6556 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 18:28:57 +00:00
J. Alexander Treuman
3c5cecb828 Redoing remiss's shout patch. This time, just block on open() instead of
pretending to play while we wait for the connection to timeout.  This
removes the need for timers, and thus removes the now unnecessary
timer_get_runtime_* function(s) from the timer code.

The changes made compared to the pre-patch shout plugin are:
* Block while connecting, timing out after 2 seconds.
* Close the device, and not just the connection, if play returns -1.
* Remove sd->last_err (it's always assigned before use).
* Some minor cleanups.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6555 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 17:58:17 +00:00
J. Alexander Treuman
bd0620ff72 Load shout first instead of last. This makes it more likely to block other
outputs, which is actually desired behaviour.  This way if the shout server
takes a while to respond, the shout output can block until connected
without messing up other audio outputs.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6554 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-12 17:49:31 +00:00
J. Alexander Treuman
2d8f36cefb Load the shout plugin last. This will make sure it's played to last,
reducing the likelyhood of it blocking other outputs.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6543 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-10 22:58:56 +00:00
J. Alexander Treuman
4e5cffaa7b If an audio output is in state DEVICE_ENABLE, and openAudioOutput fails,
leave it in that state.  Likewise, if an audio output is in state
DEVICE_ON, and reopening the device due to a format change fails, change it
to state DEVICE_ENABLE.  This will prevent flushAudioBuffer from even
attempting to play audio on a closed device (even though it would fail
anyway).

git-svn-id: https://svn.musicpd.org/mpd/trunk@6529 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 21:40:56 +00:00
J. Alexander Treuman
8feaf84b24 Tidying up some code.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6527 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 19:19:33 +00:00
J. Alexander Treuman
0bfe6cabce Remove a useless if (quit) block. It's enclosed in two while loops: the
top depending on !quit, which doesn't set it anywhere before the if (quit)
block is reached, and the inner one which doesn't set quit at all.  Since
it's a local variable and can't be modified externally, it'll never be hit.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6524 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 16:04:00 +00:00
Roger Bystrøm
d50fc3849a This should resolve some of the timing issues experienced after switching from blocking to non-blocking shout api
* Wait ten seconds before declearing the shout server unreachable
* Fix a state where it would never attempt to connect if it had previously failed

It isn't perfect yet, but I'd like some testing on it from other setups


git-svn-id: https://svn.musicpd.org/mpd/trunk@6523 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 15:51:20 +00:00
Roger Bystrøm
50fbab086a switching to us instead of ms on runtime
git-svn-id: https://svn.musicpd.org/mpd/trunk@6522 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 15:45:36 +00:00
Roger Bystrøm
a886600474 Added timer_get_runtime_ms to know how long the timer has been running
git-svn-id: https://svn.musicpd.org/mpd/trunk@6521 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 14:03:09 +00:00
J. Alexander Treuman
9ccf0d8a25 Use string concatenation instead of snprintf for the User-Agent HTTP
header.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6520 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 13:43:40 +00:00
J. Alexander Treuman
9980d233c4 Tidying up some code.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6519 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-09 13:34:53 +00:00
Warren Dukes
52a06531fc dmix fix, don't call snd_pcm_drain unless we're already in the RUNNING
state (when users press stop, previous snd_pcm_drop(), then
snd_pcm_drain() was called.  this would lockup dmix)


git-svn-id: https://svn.musicpd.org/mpd/trunk@6517 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-08 12:44:38 +00:00
J. Alexander Treuman
df95a80fa1 Send SIGCONT to the decode process before sending it SIGTERM.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6503 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-07 20:02:27 +00:00
J. Alexander Treuman
01faa6f4e3 Set a flag if we've sent the player process SIGSTOP so that we know not to
wait for it to complete an action which it never will.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6488 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 23:14:38 +00:00
J. Alexander Treuman
0e4f418c29 Don't send the main process SIGUSR1 until we've sent the decode process
SIGSTOP.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6486 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 22:36:39 +00:00
J. Alexander Treuman
89eca9eebc Don't kill the player process (and effectively the decode process) when
completely stopped.  Instead, send them SIGSTOP to pause the process until
they're needed again.  Then send them SIGCONT instead of re-spawning them.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6485 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 22:29:55 +00:00
J. Alexander Treuman
4734a2e2b4 Adding very experimental streaming support for mp4.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6483 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 19:24:19 +00:00
J. Alexander Treuman
cbdc0b1534 Use strncasecmp instead of strncmp when comparing HTTP headers. It seems
some versions of shoutcast send "content-type" in all lowercase, and I
don't trust other servers to get the case right for the rest of the headers
we look for.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6482 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 19:02:23 +00:00
J. Alexander Treuman
caa17db85e Add MIME types for the aac and mp4 input plugins. Note that these won't
have any effect until the aac and mp4 input plugins actually support a
stream decoding API.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6481 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 18:57:34 +00:00
J. Alexander Treuman
71094905e3 Cleanup some formatting in decode.c.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6480 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 18:55:46 +00:00
J. Alexander Treuman
4685c782c4 Actually load the aac input plugin.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6479 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 18:54:46 +00:00
J. Alexander Treuman
1b68d00b3b Don't initialize zeroconf until after we've daemonized and log output has
been redirected.  This prevents zeroconf from blocking daemonization, and
makes sure any errors get sent to the logs and not stdout.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6477 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-04 17:41:18 +00:00
J. Alexander Treuman
7e2cbdee05 Removing that space that was recently added to the "Icy-Metadata: 1" HTTP
header.  While this is odd for an HTTP header, it's actually quite common
for streaming clients to send it without a space.  Some clients do send
with a space as well, but without one has always worked fine and may in
fact be more compatible.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6472 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 19:46:03 +00:00
J. Alexander Treuman
d5596a1cf0 Define HAVE_ZEROCONF if Avahi or Bonjour support is enabled, so that we can
silence a warning about an unused variable without using stupid checks for
HAVE_AVAHI || HAVE_BONJOUR.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6471 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 19:44:19 +00:00
J. Alexander Treuman
ab14f8a3c7 Oops, forgot to test that last bool commit. Fixing an error and warning.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6470 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 19:30:37 +00:00
J. Alexander Treuman
a6fecd6c05 Making some bool options more consistent.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6468 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 19:25:25 +00:00
Patrik Weiskircher
d67737bc64 allow zeroconf to be disabled.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6467 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-03 18:08:51 +00:00
J. Alexander Treuman
f3be4e8c91 Adding a missing include.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6462 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 22:52:53 +00:00
J. Alexander Treuman
5f8d6d6900 Removing some commented code that wrote HTTP streams to stdout.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6461 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 21:32:59 +00:00
Patrik Weiskircher
b91af54d2a Added Bonjour zeroconf support. This works now natively on MacOS X.
I couldn't test mDNSResponder support on Linux, as Debian doesn't include it - but should work as well.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6453 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 17:06:08 +00:00
J. Alexander Treuman
7b07a45dc4 Someone forgot a space in the "Icy-Metadata: 1" HTTP header.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6452 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-02 16:48:54 +00:00
J. Alexander Treuman
6d7e0eb166 Tell the player process (and thus also the decode process) to quit when
playback is stopped completely.  This means the player process will no
longer have to wake up 100 times per second to see if it's been told to
start playing (the main process will just spawn a new player process when
it needs to).  On the downside, this means an extra pair of forks() and the
re-initializing of the player and decode processes each time playback is
restarted.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6446 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-01 18:10:13 +00:00
J. Alexander Treuman
88638f4821 Removing the getBoundPort() function and just making boundPort an extern.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6445 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-01 17:44:03 +00:00
J. Alexander Treuman
485d1f68dd Minor formatting cleanups.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6444 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-06-01 12:53:13 +00:00
J. Alexander Treuman
bc95aa0e12 Only call finishDriverFunc if there is one. The null plugin doesn't have
one now, and trying to call NULL was causing a segfault at exit.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6398 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 18:31:38 +00:00
J. Alexander Treuman
693dc37851 Move the timing code from the null plugin to timer.c, so it can be easily
used in other plugins (fifo, shout, etc.).

git-svn-id: https://svn.musicpd.org/mpd/trunk@6397 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 18:16:35 +00:00
J. Alexander Treuman
0f8ab01c3e Adding a null output plugin.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6393 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-30 16:52:56 +00:00
J. Alexander Treuman
1945c7c948 Adding ioops.h to mpd_headers so that it gets included in the tarball.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6323 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-28 12:42:44 +00:00
J. Alexander Treuman
b9b39849d8 Increasing default buffer_before_play from 0% to 10%.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6290 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-27 13:12:02 +00:00
Avuton Olrich
5339f63a2b Fix compilation error (missing ,)
git-svn-id: https://svn.musicpd.org/mpd/trunk@6289 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-27 00:16:17 +00:00
J. Alexander Treuman
d306019f5c "unable open" -> "unable to open"
git-svn-id: https://svn.musicpd.org/mpd/trunk@6278 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 18:21:51 +00:00
J. Alexander Treuman
93e68adc79 After changing ERROR();exit() to FATAL(), gcc incorrectly detects some
uninitialized variables and non-returning functions that return.  Let's
tell it to stfu.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6277 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 18:20:53 +00:00
J. Alexander Treuman
bba444524e Changing all calls to ERROR() followed by exit(EXIT_FAILURE) with a single
call to FATAL().

git-svn-id: https://svn.musicpd.org/mpd/trunk@6276 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 18:15:54 +00:00
J. Alexander Treuman
dba45a5992 Cleaning up pcm_getSampleRateConverter.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6275 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 17:33:59 +00:00
J. Alexander Treuman
665ab83761 Exit with an error if channel count isn't 1 or 2.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6274 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 17:04:54 +00:00
J. Alexander Treuman
355d18a593 Make pcm_convertAudioFormat return the buffer size. This is necessary
because lsr may return less than the input buffer size, and the rest of the
audio code needs to know the new size.  This fixes the clicking that was
introduced with recent changes to the lsr code.  A huge thanks to remiss
for figuring this out.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6273 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 16:39:55 +00:00
J. Alexander Treuman
29819576eb weather -> whether
git-svn-id: https://svn.musicpd.org/mpd/trunk@6271 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 15:05:06 +00:00
J. Alexander Treuman
425c6e9502 Changing calls to strdup to xstrdup.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 15:04:54 +00:00
J. Alexander Treuman
d14a655901 Cleaning up addToStoredPlaylist. Now we call freeJustSong if adding a URL.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6269 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 15:00:38 +00:00
J. Alexander Treuman
f16e372871 Make sure StoredPlaylists always contain UTF-8 paths that are either
relative paths in the DB or URLs.  The main functional difference is that
playlistmove and playlistdelete will rewrite playlists in the correct
encoding and remove invalid lines instead of potentially modifying them.
The specific changes are:

appendSongToStoredPlaylist:
* Don't convert to FS charset
* Don't prepend music_directory if saving absolute paths

writeStoredPlaylistToPath:
* Convert to FS charset
* Prepend music_directory if saving absolute paths

loadStoredPlaylist:
* Make sure each line is either in the DB or a URL

loadPlaylist:
* Don't bother checking paths, since it's done in loadStoredPlaylist now

git-svn-id: https://svn.musicpd.org/mpd/trunk@6266 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 14:09:09 +00:00
J. Alexander Treuman
f4d959a07b More formatting/error message cleanups in storedPlaylist.c.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6265 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 00:48:53 +00:00
J. Alexander Treuman
fd645486a1 Don't call freeStoredPlaylist(sp) inside an if (!sp) block. It causes
segfaults.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-26 00:28:07 +00:00
J. Alexander Treuman
fc094c08d3 Cleaning up formatting and error messages in storedPlaylist.c.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6263 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-25 20:25:11 +00:00
J. Alexander Treuman
2814b7cfc6 Reverting to the full lsr API. Turns out the simple API needs all of the
audio at once, so it won't work for us.  The old full API code was still
heavily broken, as each call to pcm_convertSampleRate() used the same
state, even if it was processing two streams of audio.  The new code keeps
a separate state for each audio stream that's being converted.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6255 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-24 21:15:37 +00:00
J. Alexander Treuman
7ba357a04e Adding rename command, for renaming stored playlists.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6246 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-24 18:07:19 +00:00
J. Alexander Treuman
0d7d2ebf80 Cleaning up error messages in storedPlaylist.c.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-24 17:25:21 +00:00
J. Alexander Treuman
c408bd5e90 Don't list playlists in lsinfo if the path isn't the root directory (they
can't be loaded anyway).

git-svn-id: https://svn.musicpd.org/mpd/trunk@6244 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-24 17:06:59 +00:00
J. Alexander Treuman
cee4ba72e1 Changing some DEBUG/ERROR/FATAL messages in the JACK plugin.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6232 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-23 12:24:12 +00:00
J. Alexander Treuman
495e1b6cf9 Tidying up pcm_utils.c a bit more.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6230 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-23 11:04:04 +00:00
J. Alexander Treuman
fbb3a94f17 Switching to the lsr simple API. The problem with the full API is that the
number of channels is specified when the converter state is created.
Previously this was only done once, thus breaking horribly when the input
audio suddenly had a different channel count.  A new state could be created
every time the number of channels changes, but this could happen many times
a second if resampling to two different formats at once.  The simple API
doesn't have this problem, as channel count is an argument to the
conversion function itself.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6229 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-23 10:31:07 +00:00
J. Alexander Treuman
a70ecdc00c Just specify mimeType as NULL in mpc's InputPlugin struct.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-22 23:34:26 +00:00
J. Alexander Treuman
407497c40a Split pcm_convertAudioFormat into separate functions for bitrate, channel,
and samplerate conversion.  This makes the code much easier to read, and
fixes a few bugs that were previously there.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6224 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-22 23:11:36 +00:00
J. Alexander Treuman
e6d7663b10 Cleaning up/correcting some comments.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6200 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-22 15:21:56 +00:00
J. Alexander Treuman
f2850a66f0 Reindenting
git-svn-id: https://svn.musicpd.org/mpd/trunk@6199 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-22 15:02:25 +00:00
J. Alexander Treuman
92ff09881a Fail loading the playlist on errors mid-file. The same code is used for
playlistadd, playlistdelete, etc. and would've caused the playlist to be
rewritten only up to the line with the error.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6133 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-16 20:35:13 +00:00
J. Alexander Treuman
6cfe421cd6 Committing pat's rewrite of the stored playlist code. This also adds two
new commands: playlistmove and playlistdelete.

git-svn-id: https://svn.musicpd.org/mpd/trunk@6116 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-16 12:02:10 +00:00
J. Alexander Treuman
6f68587ad5 Changing "//" comments to "/* */" comments.
git-svn-id: https://svn.musicpd.org/mpd/trunk@6112 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-05-15 23:23:09 +00:00
J. Alexander Treuman
f63c6ca86d Fixing some code that was rendered unreadable by indent.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5955 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-26 00:48:37 +00:00
J. Alexander Treuman
472e70e74e Forgot to change the associated fdprintf format to %li.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5952 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-26 00:13:14 +00:00
J. Alexander Treuman
dc4e2a3f5e Changing SearchStats.playTime from int to unsigned long.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5951 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-26 00:11:30 +00:00
J. Alexander Treuman
7a8a9c10e1 Adding count command. It's usage is identical to find, but instead of
returning a list of matching songs, the number of results and total play
time of the results are returned.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5950 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 23:46:11 +00:00
J. Alexander Treuman
ebaa3f4338 Set directory_dbModTime when writing the db, so that it will be set after
initial db creation.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5948 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 20:34:30 +00:00
J. Alexander Treuman
179ab7efe8 fials -> fails
git-svn-id: https://svn.musicpd.org/mpd/trunk@5947 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 20:18:47 +00:00
J. Alexander Treuman
18e20b8d2c Remove the now unused struct stat from initMp3Directory().
git-svn-id: https://svn.musicpd.org/mpd/trunk@5946 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 20:08:05 +00:00
J. Alexander Treuman
bf6da4f399 initMp3Directory() is only called when (re)creating the db, but before the
db file is written.  So don't try to set directory_dbModTime to the mtime
of the db file, since it will be incorrect.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5945 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 20:06:47 +00:00
J. Alexander Treuman
f67b6b896f Removing references to options.updateDB in main.c.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5944 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-25 18:47:34 +00:00
José Anarch
51ec5b1542 Only a few changes in jack_playAudio.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5909 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-11 17:41:10 +00:00
José Anarch
de5667b288 Now process and playAudio use mutexes.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5897 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-09 20:18:11 +00:00
J. Alexander Treuman
95c411224a Don't allow "true" as a value for use_mmap for consistency with other "yes
or no" parameters.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5896 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-09 13:05:50 +00:00
J. Alexander Treuman
b8341e6902 Cleaning up some comments.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5894 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-09 12:24:48 +00:00
J. Alexander Treuman
7dadabca8a When calling commandError(STDERR_FILENO, ...), don't set current_command to
NULL.  Doing so would mean future calls to commandError with a socket as an
argument will still write the error message to the error log, and not the
socket.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5891 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-08 15:41:38 +00:00
J. Alexander Treuman
74e75378ae If current_command is NULL when calling commandError, print the error
message and trailing new line to STDERR_FILENO along with the ACK, instead
of sending them over the socket.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5890 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-08 15:26:48 +00:00
J. Alexander Treuman
c825401760 Typo.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5889 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-08 15:25:18 +00:00