Commit Graph

1351 Commits

Author SHA1 Message Date
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
Avuton Olrich
a061da8fb5 The massive copyright update
git-svn-id: https://svn.musicpd.org/mpd/trunk@5834 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-05 03:22:33 +00:00
J. Alexander Treuman
059494e8e4 Don't stop decoding when unpausing fails because no audio device can be
opened.  Instead just remain in paused state.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5820 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-03 20:22:10 +00:00
J. Alexander Treuman
2caf18ad43 Reformatting some code.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5819 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-04-03 20:10:22 +00:00
J. Alexander Treuman
e3e4964f59 Adding tagtypes command to list available tag types (takes metadata_to_use
into account).

git-svn-id: https://svn.musicpd.org/mpd/trunk@5792 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-31 18:43:16 +00:00
J. Alexander Treuman
2215c1796d Set totalTime to 0 for MODs. If this isn't done, the totalTime of the
previous song played will be reused.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5791 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-31 18:07:27 +00:00
J. Alexander Treuman
5a734c0172 Disable looping MOD files played with libmikmod. Many MODs will loop
forever without this.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5790 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-31 17:50:59 +00:00
Avuton Olrich
ef0397bf5b Another patch from Jose
git-svn-id: https://svn.musicpd.org/mpd/trunk@5733 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-23 21:23:41 +00:00
Avuton Olrich
8553a98c84 Add new update from Jose for JACK
git-svn-id: https://svn.musicpd.org/mpd/trunk@5729 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-23 11:07:04 +00:00
J. Alexander Treuman
c2c4852620 Doing those previous SONG_* commits properly. Thanks to normalperson for
pointing it out.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5673 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-20 21:05:42 +00:00
J. Alexander Treuman
28c2a1e433 Use "file" instead of SONG_INFO (literally "file: ") for
LOCATE_TAG_KEY_FILE.  Specifying "file: " as an argument to
search/find/list wasn't the point of that patch...

git-svn-id: https://svn.musicpd.org/mpd/trunk@5670 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-20 20:22:23 +00:00
J. Alexander Treuman
2630b5a30f Use SONG_FILE instead of literal "file: " for consistency with db code.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-20 20:16:25 +00:00
J. Alexander Treuman
80dea15184 Use SONG_TIME instead of literal "Time: " for consistency with db code.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5668 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-20 20:12:53 +00:00
J. Alexander Treuman
ce2efb48d5 This fixes a bug where a client sending just the right data could cause mpd
to segfault.  This could be exploited by malicious users to crash other
users' mpd.  But more importantly, I believe clients are doing this
unintentionally, and that this is what is causing mpd to segfault for many
people after running for long periods of time.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5649 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-18 01:19:08 +00:00
Warren Dukes
b1d50567c6 fix bug #1458
git-svn-id: https://svn.musicpd.org/mpd/trunk@5589 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-09 14:44:09 +00:00
J. Alexander Treuman
d93e939557 Support for libmikmod 3.2.0 betas.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5492 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-03-02 12:14:18 +00:00
J. Alexander Treuman
befd2776bc Removing a useless block.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5460 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-28 12:34:36 +00:00
J. Alexander Treuman
7ca84d3166 Adding copyright headers to locate.[ch].
git-svn-id: https://svn.musicpd.org/mpd/trunk@5422 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-24 03:14:00 +00:00
J. Alexander Treuman
6e64bac7b6 Adding playlistfind and playlistsearch commands for searching the current
playlist.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5420 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-24 02:00:03 +00:00
J. Alexander Treuman
1ae3bdb7e6 Moving a bunch of the LocateTagItem code to locate.[ch] so that it can
later be used for playlist searching.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5419 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-24 00:54:54 +00:00
Qball Cow
d7e20861d4 Make mpd fetch the Original artist/performer tag from mp3's
git-svn-id: https://svn.musicpd.org/mpd/trunk@5418 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-23 20:39:39 +00:00
Eric Wong
08a7a86be2 pcm_utils: fix libsamplerate compilation with non-C99 compilers
Mixing code and declarations is ugly, anyways.

We could probably get away with using alloca(), but I'm not sure
how good compiler support is for that, either.  It's probably
more supported than mixed declarations and code.  Nevertheless;
we'll trigger memory checkers on exit because we don't free
the buffers; but we won't actually leak because we reuse those
buffers (just like the non-SRC code path).

git-svn-id: https://svn.musicpd.org/mpd/trunk@5397 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-19 07:58:08 +00:00
Eric Wong
658b8f53df More (v)snprintf-related buffer over-allocations removed
Also took out an unnecessary memset in getPlayerErrorStr

git-svn-id: https://svn.musicpd.org/mpd/trunk@5396 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-19 07:58:05 +00:00
Eric Wong
772dc6bc66 inputStream_http: cleanup GET request code (finishHTTPInit)
Avoid unnecessary memset to zero, snprintf always puts a
trailing '\0'.  We also have no need to subtract one from the
buffer we're snprintf-ing it to.

We also check the return value of snprintf to ensure it's not
too long.  I have a feeling we might as well avoid snprintf
altogether so we don't have to worry about buffer sizing/stack
overflow and just do a bunch of write(2)s, letting Nagle sort it
out...

Also, centralize some of the exit error handling in with
goto.  This makes the code a bit more consistent and
maintainable as well as reducing code and binary size.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5395 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-19 07:58:03 +00:00
Eric Wong
9372692127 inputStream_http: fix HTTP seeking
We need to identify ourselves as HTTP/1.1 so Range: works;
and so the server can return HTTP/1.1 instead of HTTP/1.0.

Tested against lighttpd 1.4.13

git-svn-id: https://svn.musicpd.org/mpd/trunk@5394 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-19 06:49:01 +00:00
J. Alexander Treuman
8b8d6ddbbd Removing a global initialization to 0.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-18 01:59:33 +00:00
J. Alexander Treuman
7a4e0162ae Closing some parenthesis around shank's email address in copyright headers.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5376 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-18 01:20:21 +00:00
J. Alexander Treuman
f8e78bf995 Re-adding a fix to log.c that got pulled with the localization reversion.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5374 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-18 01:00:54 +00:00
J. Alexander Treuman
7b1e14b8e8 Reverting all of my localization changes. It was a horrible
implementation, and fixing it is a big enough job that I don't know when
I'll get around to it.  Probably best just starting from scratch anyhow.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5373 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-18 00:42:22 +00:00
Warren Dukes
d7e8507eaf fix for bug #1447
git-svn-id: https://svn.musicpd.org/mpd/trunk@5369 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-18 00:06:20 +00:00
J. Alexander Treuman
81fd135651 Fixing some weird floating point comparison issue. Not exactly sure why
this fixes it though.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5338 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-13 23:47:41 +00:00
Warren Dukes
b54c7c64c0 #1) fix a few potential deadlock conditons in decode.c when crossfading is enabled
#2) fix a deadlock condition when attempting to seek if the decoder quit and returned to playerInit()

git-svn-id: https://svn.musicpd.org/mpd/trunk@5325 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-11 20:36:26 +00:00
J. Alexander Treuman
c5933a164a Fix a bug where mpd would complain about a proxy password being specified
and not a proxy user even when both are specified.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5324 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-06 03:25:29 +00:00
Avuton Olrich
79ef8ba248 Add libsamplerate support, old resampling is still an option, but this sounds much better for those who need it and don't want to use pulseaudio. Reviewed by shank/avuton.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5316 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-02-02 03:51:07 +00:00
Warren Dukes
96c5976ccc on second thought, comment out the debug statement so that users aren't potentially flooded
git-svn-id: https://svn.musicpd.org/mpd/trunk@5270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-24 02:56:45 +00:00
Warren Dukes
2a92239cf1 add debug statement for bug #1380
git-svn-id: https://svn.musicpd.org/mpd/trunk@5269 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-24 02:53:16 +00:00
Qball Cow
b2488e469a Fix some error messages concerning _ao output driver
git-svn-id: https://svn.musicpd.org/mpd/trunk@5268 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-21 21:41:54 +00:00
Avuton Olrich
d7e3b80f62 José Anarch: JACK updates
git-svn-id: https://svn.musicpd.org/mpd/trunk@5267 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-20 21:04:32 +00:00
Avuton Olrich
51d7ab021c Committing posix_fadvise(); normalperson/jat reviewed. Appears fine. Fixes bug #1428.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5265 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-19 01:40:02 +00:00
J. Alexander Treuman
9a222cab6c Call initLocalization() earlier so that errors, --version, etc. output
correctly.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-17 16:06:21 +00:00
Eric Wong
298d5ce059 avahi: malloc => xmalloc
git-svn-id: https://svn.musicpd.org/mpd/trunk@5262 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:49:26 +00:00
Eric Wong
53427fb3d4 sparse: move extern declarations for plugins into header files
git-svn-id: https://svn.musicpd.org/mpd/trunk@5261 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:33:13 +00:00
Eric Wong
0a6d48c28e More sparse fixes now that we've re-enabled -Wmissing-prototypes
git-svn-id: https://svn.musicpd.org/mpd/trunk@5260 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:33:11 +00:00
Eric Wong
5220c2c991 avahi: use #ifdef instead of #if because AVAHI may not be defined at all
git-svn-id: https://svn.musicpd.org/mpd/trunk@5259 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:25:27 +00:00
Eric Wong
2c01b285c1 flac: workaround for type inconsistency between new/old read callback
size_t (1.1.3) makes a lot more sense, but older flac used unsigned
here...

git-svn-id: https://svn.musicpd.org/mpd/trunk@5258 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:25:24 +00:00
Eric Wong
d41de57bfe jack: fix type warning in error message
just casting to int because it's the simplest (%z is not
well-supported)

Noticed-by: avuton on a 64-bit machine

git-svn-id: https://svn.musicpd.org/mpd/trunk@5257 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 04:25:22 +00:00
Eric Wong
b443363aa6 Don't initialize globals to zero (or NULL)
Some compilers and linkers aren't smart enough to optimize this,
as global variables are implictly initialized to zero.  As a
result, binaries are a bit smaller as more goes in the .bss and
less in the text section.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5254 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 03:07:53 +00:00
Eric Wong
45716f877b flac/ogg/oggflac: keep old mime-types in addition to the new ones
We'll be dealing with legacy server configurations for a long
time to come.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5253 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 03:07:50 +00:00
Eric Wong
3c2d123ab9 jack: fix double-free in finish routine
git-svn-id: https://svn.musicpd.org/mpd/trunk@5252 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:29 +00:00
Eric Wong
f894e98950 jack: fix potential segfaults in parsing bad configs for 'ports'
git-svn-id: https://svn.musicpd.org/mpd/trunk@5251 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:27 +00:00
Eric Wong
e1ee4505de jack: fix multiple segfaults when jackd hasn't been started
git-svn-id: https://svn.musicpd.org/mpd/trunk@5250 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:24 +00:00
Eric Wong
eb2a02dc2b jack: strdup => xstrdup for error checking
git-svn-id: https://svn.musicpd.org/mpd/trunk@5249 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:22 +00:00
Eric Wong
8a1b85c1a5 avahi: more sparse fixes (-Wshadow, non-ANSI declarations)
git-svn-id: https://svn.musicpd.org/mpd/trunk@5248 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:20 +00:00
Eric Wong
6b9fc56839 jack: declare global variables as static
There's no reason they shouldn't be static.  Additionally,
output_ports doesn't need to be initialized to NULLs; that is
(and has always been) implicit (for all global variables)

git-svn-id: https://svn.musicpd.org/mpd/trunk@5247 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:18 +00:00
Eric Wong
71bcc16588 mp3: sparse: fix warnings reported with -Wshadow
sendDataToOutputBuffer returns an int (and always has), and
using the existing 'ret' is fine in mp3Read().

git-svn-id: https://svn.musicpd.org/mpd/trunk@5246 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:16 +00:00
Eric Wong
5ae84b7d0f localization: fix implicit declaration warnings (WARNING and strcmp)
just added the missing includes.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:14 +00:00
Eric Wong
598be943ac flac: sparse: mismatched enum type for seek
git-svn-id: https://svn.musicpd.org/mpd/trunk@5244 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:11 +00:00
Eric Wong
931c980558 zeroconf: avoid mixing declarations and code
git-svn-id: https://svn.musicpd.org/mpd/trunk@5243 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:09 +00:00
Eric Wong
8a38b28e86 inputStream_http: stop mixing declarations with code
git-svn-id: https://svn.musicpd.org/mpd/trunk@5242 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:07 +00:00
Eric Wong
1d9b6076cb flac: fix a stupid mistake newer preprocessors don't complain about
FLAC__{seekable_,}_stream_decoder_new() takes no arguments

git-svn-id: https://svn.musicpd.org/mpd/trunk@5241 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-14 02:08:05 +00:00
Jim Ramsay
5d79aced8c Added zeroconf service publishing using avahi
git-svn-id: https://svn.musicpd.org/mpd/trunk@5238 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-11 20:41:17 +00:00
Qball Cow
2d985b01c2 Remove a line of dead code
git-svn-id: https://svn.musicpd.org/mpd/trunk@5235 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-11 14:47:12 +00:00
J. Alexander Treuman
44c5549b46 Output warning messages in the current locale's charset.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5229 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-08 05:04:08 +00:00
J. Alexander Treuman
4989672ac0 Fixed some silly logic that caused an extra \n to be printed when flushing
warning messages.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5228 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-08 05:01:28 +00:00
J. Alexander Treuman
438c1add9d Convert log messages sent to stdout to the current locale's charset.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5227 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-08 04:31:44 +00:00
J. Alexander Treuman
90b4af0341 Moving pathConvCharset to charConv.c so it can be reused for localization.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5226 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-08 03:28:36 +00:00
J. Alexander Treuman
bcb493cfd3 Moving localization stuff from path.c to localization.c so we can reuse it
for log messages when outputting to console.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-08 03:15:33 +00:00
Avuton Olrich
4730666b26 Fix the mime types for flac & oggflac, see mantis bug #1423 for more information
git-svn-id: https://svn.musicpd.org/mpd/trunk@5222 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-01-06 04:59:05 +00:00
Avuton Olrich
70a23d61cc And a fix for the warnings in the last patch for JACK
git-svn-id: https://svn.musicpd.org/mpd/trunk@5192 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-30 00:41:05 +00:00
Avuton Olrich
43e2981f20 A JACK patch to fix some old issues, from author.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5191 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-30 00:14:45 +00:00
Qball Cow
878fc33ce9 Accept application/x-ogg as valid mime type
git-svn-id: https://svn.musicpd.org/mpd/trunk@5165 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-27 14:12:11 +00:00
J. Alexander Treuman
ab789982d3 Do not set metadataState to PLAYER_METADATA_STATE_READ when decoding stops.
This fixes a bug where streams that won't play somehow appear with the
metadata of a previously played stream.  As far as I can tell, the only
reason this is done is to sync any buffered metadata with the displayed
metadata when decoding stops, so there should be no other adverse effects.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5161 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-24 04:24:32 +00:00
J. Alexander Treuman
9bdb0b0df2 Adding support for seeking HTTP streams.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5159 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 19:57:28 +00:00
J. Alexander Treuman
f30f93cb8b Added gapless_mp3_playback option. Setting to "no" will disable gapless
MP3 playback, thus allowing songs that run longer than the Xing frame
claims (f.e., an MP3 created by catting two MP3s together) to continue
playing past the end.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5157 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 18:00:15 +00:00
J. Alexander Treuman
d4be2276a0 Use the existing define for the default value of save_absolute_playlists
instead of a hardcoded value.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5151 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 16:37:36 +00:00
J. Alexander Treuman
df3222095c Only parse gapless info if the input stream is seekable, under the
assumption that non-seekable streams are live and any gapless info is
incorrect.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5150 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 15:58:06 +00:00
J. Alexander Treuman
57b0a42940 Don't stop decoding if we're at maxFrames just because there's a Xing tag.
Instead, stop decoding as soon as we've found the frames/samples at the
"end" that we want drop.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5149 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 15:22:35 +00:00
J. Alexander Treuman
f158016d0e Cleaning up some damn near unreadable wrapping caused by indent.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5148 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 15:13:19 +00:00
J. Alexander Treuman
5da19e5f78 Properly calculate the number of remaining samples in the MP3 frame, even
though in practice it should never matter.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5147 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-23 15:10:21 +00:00
J. Alexander Treuman
4479ece74d Making "list any" fail with an error instead of OK with no results.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5139 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-11 20:18:04 +00:00
J. Alexander Treuman
ba4b4d8ad9 Moving LOCATE_TAG_{FILE,ANY}_TYPE defines to dbUtils.h, so that we can
compare the return value of getLocateTagItemType() to them.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5138 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-11 20:14:33 +00:00
J. Alexander Treuman
a26582e991 Fixing "find any" and "list * any" to actually find matches.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5137 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-11 19:52:05 +00:00
J. Alexander Treuman
ec45950b36 Oops, forgot to add an interface to stored playlist editing. Here it is.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5128 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-07 14:41:40 +00:00
Eric Wong
63dd4b4598 Add OggFLAC support when using the new 1.1.3 FLAC library
This means that when using libFLAC as a shared object,
OggFLAC support is dependent on the compile-time options of
the libFLAC library loaded.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5112 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04 04:45:50 +00:00
Eric Wong
b152086ae4 Introduce backwards compatibility with pre-1.1.3 FLAC
git-svn-id: https://svn.musicpd.org/mpd/trunk@5111 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04 04:45:47 +00:00
Eric Wong
ccf971a320 inputPlugins/flac_plugin: switch to the new (1.1.3) API
We will restore compatibility with the old API in the
next few commits; along with OggFLAC support.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5110 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04 04:45:44 +00:00
Eric Wong
5048388251 inputPlugins/flac_plugin: cleanup static declarations
move flac_decode to the bottom, so we don't have to declare
all of our static functions.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5109 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-12-04 04:45:41 +00:00
J. Alexander Treuman
fc4868a040 Check that the APE tag length is valid before allocating a buffer for it.
git-svn-id: https://svn.musicpd.org/mpd/trunk@5098 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-11-26 03:51:46 +00:00
J. Alexander Treuman
08003904d7 Adding functions for clearing/adding to stored playlists. Commands to make
use of these functions are still being worked on.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5075 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-11-20 15:37:58 +00:00
Eric Wong
6d6155d766 audioOutput_alsa: print out the bitrate we wanted to set
..and not the enum value that corresponds to that bitrate

git-svn-id: https://svn.musicpd.org/mpd/trunk@5030 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-11-07 04:10:02 +00:00
Warren Dukes
f6b982eb07 add support for: list file
This behaves the same as: list filename

git-svn-id: https://svn.musicpd.org/mpd/trunk@4952 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-27 23:07:34 +00:00
Warren Dukes
a8a932a215 remove some unneccesary includes from the audioOutput's
git-svn-id: https://svn.musicpd.org/mpd/trunk@4913 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18 03:03:28 +00:00
Warren Dukes
29c7681ca4 jack patch from anarch (and some type fixes for mp4 and acc plugins)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4912 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-18 02:49:13 +00:00
Warren Dukes
e9f51778ef an attempted fix for bug 1368
- don't close and reopen an audioOutput when it has a fixed output format, and closing and reopening the device is unneccessary when the input audio format changes

git-svn-id: https://svn.musicpd.org/mpd/trunk@4908 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-17 03:16:11 +00:00
Eric Wong
e1d1a703f1 path.c: speling fix (I coulda sworn I fixed this before... in -ke)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4904 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-14 08:50:23 +00:00
Eric Wong
5a3f501fc8 audioOutput_shout: use shout_set_nonblocking
This patch should continue to allow mpd to play as well as
possible to icecast servers while avoiding stalls on local
devices.  This has eliminated ALSA underrun errors
for me while streaming to a remote host while the network
connection was bad.

Of course, this makes opening a connection non-blocking, too,
so myShout_openShoutConn is a bit more complex.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4898 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-11 00:18:43 +00:00
J. Alexander Treuman
f6e96edcc9 Allow an ogg quality of -1 to be specified.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4893 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-10 20:00:33 +00:00
Eric Wong
4c80121bba buffer2array: extra unit tests (for PHP magic quote escapes)
Make the unit tests compile correctly without using xstrdup.

Also, use "static inline" instead of "inline static": certain
compilers or cflags are likely to complain about the latter.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4892 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-10 19:37:32 +00:00
Eric Wong
e0a8c17957 mp3_plugin.c: fix compilation with -pedantic and/or gcc 2.95
git-svn-id: https://svn.musicpd.org/mpd/trunk@4876 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06 18:01:12 +00:00
Warren Dukes
e198826606 put back np's supperrior buffer2array, and fix my bug fix from change 4872
git-svn-id: https://svn.musicpd.org/mpd/trunk@4875 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06 10:33:27 +00:00
Eric Wong
e3222d807a Revert buffer2array() behavior back to tried and true 0.11.x version
Warren's fix in r4872 made phpMp work again, but also broke
the unit tests completely (they work in this version).

The version in 0.12.0 is far too buggy (it was from mpd-ke, what
do you expect?).  This one passes all the unit tests that the
mpd-ke one passed, and should also work with phpMp when used
with PHP magic quotes.

This also means we can search on 100 (or more) tags at once, so
no more arbitrary limits other than system memory.

To run the unit tests, just do this:
gcc -o t -DUNIT_TEST=1 src/buffer2array.c && ./t && echo OK

git-svn-id: https://svn.musicpd.org/mpd/trunk@4874 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06 08:54:43 +00:00
Warren Dukes
1a51bfb84a fix escaping in quotes. (Now phpMp works again!)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4872 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-06 02:25:58 +00:00
Warren Dukes
00719544eb add a sanity check assert
git-svn-id: https://svn.musicpd.org/mpd/trunk@4869 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03 03:06:30 +00:00
Warren Dukes
d3040d1eb5 fix the segfault for when no audio_output is found and none is detected (bug found by normalperson!!!)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4868 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03 02:57:01 +00:00
Warren Dukes
347a33b009 cleanup flushWarningBuffer() and make some for() loops in audio.c look and do something sane.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4867 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03 02:22:37 +00:00
Warren Dukes
648f48ce3b handle invalid xing tags better.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4866 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-10-03 00:58:20 +00:00
Eric Wong
5ece12982a outputBuffer: avoid out-of-bounds-error in clearOutputBuffer()
I'm still not entirely certain why we index cb->metaChunkSet[]
with currentChunk (and not currentMetaChunk), but shank told me
that currentChunk is correct...

git-svn-id: https://svn.musicpd.org/mpd/trunk@4814 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-21 08:27:24 +00:00
Eric Wong
64e8332fe5 signal_check: [trivial] make __caught_signals array static
git-svn-id: https://svn.musicpd.org/mpd/trunk@4780 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-15 08:56:05 +00:00
Eric Wong
ca84702d8d tag.c: remove unnecessary #includes
git-svn-id: https://svn.musicpd.org/mpd/trunk@4762 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-11 23:45:25 +00:00
Qball Cow
f3aa34badb Hopefully fix endian problem mac x86/ppc
git-svn-id: https://svn.musicpd.org/mpd/trunk@4750 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-09 10:01:25 +00:00
Eric Wong
f5c7f3da31 utils.c: fix xrealloc
(based on suggested patch by Jan-Benedict Glaw):
> While hacking mpd, I noticed that an assert()ion in xrealloc is wrong.
> A null size is perfectly legal, so we shouldn't assert on that.

Since some C libraries return NULL when size == 0, we'll make
sure we get a free()-able pointer since some of those C
libraries also barf on free(NULL).

git-svn-id: https://svn.musicpd.org/mpd/trunk@4740 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-09-07 19:26:51 +00:00
Eric Wong
7b6d45f50f gcc.h: make sure __GNUC__ is defined before checking it's value
git-svn-id: https://svn.musicpd.org/mpd/trunk@4724 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-30 07:56:22 +00:00
J. Alexander Treuman
806acdd4f4 Rearrange mpd.conf.5 and conf.[ch] to use the more logical ordering of config parameters that the new (yet to be committed) mpdconf.example will use.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4715 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-28 20:47:50 +00:00
Eric Wong
90847fc881 Replace strdup and {c,re,m}alloc with x* variants to check for OOM errors
I'm checking for zero-size allocations and assert()-ing them,
so we can more easily get backtraces and debug problems, but we'll
also allow -DNDEBUG people to live on the edge if they wish.

We do not rely on errno when checking for OOM errors because
some implementations of malloc do not set it, and malloc
is commonly overridden by userspace wrappers.

I've spent some time looking through the source and didn't find any
obvious places where we would explicitly allocate 0 bytes, so we
shouldn't trip any of those assertions.

We also avoid allocating zero bytes because C libraries don't
handle this consistently (some return NULL, some not); and it's
dangerous either way.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:57 +00:00
Eric Wong
be554c2596 audioOutputs_oss: [trivial] make loop interation consistent with others
git-svn-id: https://svn.musicpd.org/mpd/trunk@4689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:52 +00:00
Eric Wong
f3981eab58 audio.c: [trivial] remove unnecessary include
git-svn-id: https://svn.musicpd.org/mpd/trunk@4688 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:49 +00:00
Eric Wong
45f28394c0 command.c: rerun mpd-indent.sh, no code changes
leave out initCommands to keep jat happy, and keep labels
at the left hand side

git-svn-id: https://svn.musicpd.org/mpd/trunk@4687 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-26 06:25:44 +00:00
J. Alexander Treuman
5b7c3c8707 Fix an esoteric gcc warning
git-svn-id: https://svn.musicpd.org/mpd/trunk@4684 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-25 00:29:41 +00:00
Eric Wong
64a4c635de audiofile_plugin: use afSetVirtualSampleFormat, too
This finally fixes a bug from over two years ago playing a wave file
(oprah.wav) with the following characteristics (from sfinfo):

File Format    Microsoft RIFF WAVE Format (wave)
Data Format    8-bit integer (unsigned, little endian)
Audio Data     986827 bytes begins at offset 58 (3a hex)
1 channel, 986827 frames
Sampling Rate  22050.00 Hz
Duration       44.754 seconds

Of course, this has been regression tested with all the files
that the previous commit got working.  Thanks to Michael Pruett
(audiofile author) for the hint and shame on me for forgetting
about it for over two years :x

git-svn-id: https://svn.musicpd.org/mpd/trunk@4682 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-24 21:59:19 +00:00
Eric Wong
b8fe818ae7 audiofile_plugin: fix for playing mono .au files with 8000Hz sample rate
Use the 'Virtual' variants of afGetSampleFormat, afGetChannels,
afGetVirtualFrameSize in the audiofile library, since it already does
the necessary abstraction for us.

Of course, I've regression tested these changes against my
standard 44100Hz/2ch/16bit wave files and they continue to play
fine.

Files tested:
english.au (Linus Torvalds pronouncing 'Linux' in English)
B01.Red_Bright_Heart.au (Chinese opera, sounds correct to me even though
I don't actually understand the words)

git-svn-id: https://svn.musicpd.org/mpd/trunk@4681 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-24 20:54:40 +00:00
J. Alexander Treuman
25555cd1b0 Use strcasecmp to check for replaygain id3v2 tags, since apparently some apps write them in all caps.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4672 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-23 19:10:47 +00:00
J. Alexander Treuman
87327cb931 Instead of ignoring mp2/mp3 files that start with a layer 1 frame, just skip the layer 1 frames looking for a layer 2 or 3 frame.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4671 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-23 14:06:16 +00:00
J. Alexander Treuman
30bf8f89f4 If a frame header decode loses sync, just try again instead of trying to decode a frame (which will automatically decode the next header without allowing us to do some checks on it).
git-svn-id: https://svn.musicpd.org/mpd/trunk@4670 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-23 13:43:23 +00:00
J. Alexander Treuman
103dd654f0 Skip layer 2 frames in mp3s and vice versa. Also drop support for layer 1, since it hasn't been tested.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-23 13:20:24 +00:00
Eric Wong
67de7ea116 fix Replay Gain reading for FLAC and OggFLAC
This bug was NOT introduced in my OggFLAC additions, honest!

As far as I can see, it was introduced way back in r2482, but
nobody ever noticed until the post here:
http://www.musicpd.org/forum/index.php?topic=1152.0

While we're at it, clean up some of the variable typing.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4664 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-22 06:36:56 +00:00
Eric Wong
504d3425f2 get rid of the pointless xopen wrapper, open(2) does not throw errno = EINTR
git-svn-id: https://svn.musicpd.org/mpd/trunk@4663 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-22 06:36:51 +00:00
Eric Wong
72c12ff768 oggvorbis_plugin.c: update message to match changed function name
I'm not using __FUNCTION__ or __func__ because compiler support
for these is still a bit iffy as far as I know...

git-svn-id: https://svn.musicpd.org/mpd/trunk@4662 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 10:13:59 +00:00
Eric Wong
ee223bf02b trivial: labels should be on the left-most column, no tabbing
Unfortunately there doesn't seem to be an indent switch for this,
but we have find + perl:

find src -name '*.[ch]' | xargs perl -i -p -e \
's/^\s+(\w+):/$1:/g unless /^\s+default:/'

This is a followup to r4605, and there are no actual code
changes in this.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4661 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 10:13:54 +00:00
Eric Wong
f8b07de3d4 inputPlugins/_ogg_common.c: check for read errors correctly
git-svn-id: https://svn.musicpd.org/mpd/trunk@4660 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 10:13:50 +00:00
Avuton Olrich
aa487e6c75 This fixes 5 potential bugs where the conditional would always be true.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4659 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 03:11:12 +00:00
Avuton Olrich
54a1a9f2b6 Fix missing initializer in DISABLED_AUDIO_OUTPUT_PLUGIN();
git-svn-id: https://svn.musicpd.org/mpd/trunk@4658 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 01:06:27 +00:00
Avuton Olrich
f79a70d1b9 Fix warnings for -Wmissing-prototypes
Add -Wmissing-prototypes if compiling with gcc
Static where possible

git-svn-id: https://svn.musicpd.org/mpd/trunk@4657 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-20 00:50:44 +00:00
Eric Wong
9caade4eb1 fix a few warnings on 64-bit machines
size_t is bigger than int on most 64-bit machines, so cast
size_t to long when passing them to printf-like functions.

Ideally we'd use %z, but many compilers don't support it.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4656 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-18 07:02:54 +00:00
J. Alexander Treuman
a6297f81f3 Cast isostr to char * to fix yet another warning
git-svn-id: https://svn.musicpd.org/mpd/trunk@4655 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-18 04:10:41 +00:00
J. Alexander Treuman
7c3a5596fd Change type of isostr to fix warning
git-svn-id: https://svn.musicpd.org/mpd/trunk@4654 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-18 04:08:44 +00:00
J. Alexander Treuman
8f86c41d97 Avoid an unnecessary encoding conversion when converting id3v1 tags. Also make getID3Info static.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4642 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-15 00:47:19 +00:00
Eric Wong
c2e1ccd968 tag.c: fix segfault on failed id3v1 character conversion
convStrDup() returns NULL if character conversion fails,
so make sure we check the return values and drop the
tag if we can't get a conversion.

This should close bug 1313:
http://musicpd.org/mantis/view.php?id=1313

git-svn-id: https://svn.musicpd.org/mpd/trunk@4641 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-15 00:04:34 +00:00
Eric Wong
e5df85db15 Several bugfixes during exit found by valgrind
First, make sure we call finishPlaylist() before
closeMp3Directory() since the latter will free non-SONG_TYPE_URL
songs in playlist, which causes an invalid read when we try to
look for SONG_TYPE_URL songs to free in finishPlaylist.

Secondly, make sure our children have all exited before freeing
the playerData.  If we do not, slowly-delivered signals can
trigger a race condition in the signal handlers of the decode
and player processes which rely on getPlayerData.  To avoid
waitpid-ing too long (or at all), move the freePlayerData() call
farther down in main() (this won't affect anything else)
to give the OS a better chance to deliver signals and finish running
sig handlers for terminated children.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4640 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-14 23:31:08 +00:00
Eric Wong
6459b3ee29 Revert leaks from r4311, and also the leak fixes as a result of that
utf8ToFsCharset() and fsCharsetToUtf8() got very broken in r4311, and
resulted in several commits to fix those leaks.  Unfortunately, not all
of those newly introduced leaks were fixed, nor was the result pretty.

Also, fixed a double-free in lsPlaylists().  This is very hard
to trigger (and therefore exploit) at the moment because we
check printDirectoryInfo() beforehand.

Intended behavior for utf8ToFsCharset() and fsCharsetToUtf8() as
God^H^H^Hshank originally intended is now documented in path.h
to prevent future errors like this.

mpd could still use some good valgrind testing before the 0.12.0
release.

<plug>In addition to reducing heap fragmentation, malloc
reductions from mpd-ke greatly reduces the chance of leaks from
happening due to programming errors.</plug>

git-svn-id: https://svn.musicpd.org/mpd/trunk@4639 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-14 13:46:51 +00:00
J. Alexander Treuman
4fe965c304 Stop decoding once we've dropped samples at the end (it messes up the audio if there's more mp3 to decode)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4619 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-13 02:56:23 +00:00
J. Alexander Treuman
66512edb6c Presume that the Xing frame count is accurate, and stop decoding when we hit the last frame
git-svn-id: https://svn.musicpd.org/mpd/trunk@4618 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-13 02:53:20 +00:00
Eric Wong
0511e14db0 audioOutput_alsa.c: avoid changing our internal period and buffer time values
Passing a ref to snd_pcm_hw_params_set_{buffer,period}_time_near
can modify our internal {period,buffer}_time members inside the
AlsaData structure, making re-initializing the device across
sample/bit rate and channel changes non-idempotent.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4616 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-12 18:20:55 +00:00
Warren Dukes
b5361f7789 always support DEBUG() logging, even if -DNDEBUG
git-svn-id: https://svn.musicpd.org/mpd/trunk@4613 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-12 04:50:18 +00:00
Avuton Olrich
ca7fdaa929 Spelling & Grammar
git-svn-id: https://svn.musicpd.org/mpd/trunk@4612 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-11 21:50:56 +00:00
Eric Wong
b46b2c9f69 Separate PROTOCOL_VERSION from VERSION
So we can have VERSION=0.12.0rc1 and keep the
clients seeing 0.12.0

git-svn-id: https://svn.musicpd.org/mpd/trunk@4608 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-10 21:15:06 +00:00
Warren Dukes
25346cb38c labels should be on the left most column, no tabbing
git-svn-id: https://svn.musicpd.org/mpd/trunk@4605 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-09 22:18:06 +00:00
Warren Dukes
d7d7f0089a we have the parentPos, so use it when incrementing the tree iterator.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4604 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-09 02:13:46 +00:00
Eric Wong
4924bf4391 audioOutput_pulse: ansi-fy function declarations (sparse)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4599 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-08 02:32:58 +00:00
Eric Wong
f7d150a360 more sparse cleanups
* less-commonly compiled things like ao/mvp outputs
* Adding -Wno-transparent-union to SPARSE_FLAGS makes it check
inside decode.c, directory.c, player.c, and sig_handlers.c
* remove unused variables leftover from the master process
in sig_handlers.c

git-svn-id: https://svn.musicpd.org/mpd/trunk@4598 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-08 02:23:21 +00:00
Eric Wong
6395edab69 mpc_plugin: fix seeking bug
remember to reset our chunk pointer when seeking

git-svn-id: https://svn.musicpd.org/mpd/trunk@4597 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-08 00:56:05 +00:00
Eric Wong
354d9aed79 mpc_plugin.c: fix compilation error with MPC_FIXED_POINT
(It sounds like crap though)

git-svn-id: https://svn.musicpd.org/mpd/trunk@4596 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 21:23:03 +00:00
Eric Wong
ae97bcdfa2 sparse / gcc-2.95 / -pedantic fixes
Not everybody has access to the latest and greatest compilers.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4595 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 20:49:20 +00:00
J. Alexander Treuman
d54df97b06 rewrite getId3Tag so we can get rid of this silly ID3_TAG_BUFLEN crap
git-svn-id: https://svn.musicpd.org/mpd/trunk@4594 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 20:34:59 +00:00
Eric Wong
5f1e53e887 command: static-fication since commandError is no longer a macro
git-svn-id: https://svn.musicpd.org/mpd/trunk@4593 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 20:06:46 +00:00
J. Alexander Treuman
831ee7c63e Indent some #defines in tag.c for better readability
git-svn-id: https://svn.musicpd.org/mpd/trunk@4592 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 20:04:16 +00:00
J. Alexander Treuman
5f827ac126 Ok, don't use memcmp for comparing audio formats!
git-svn-id: https://svn.musicpd.org/mpd/trunk@4591 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 20:00:00 +00:00
J. Alexander Treuman
7cf28560e1 Eliminate unnecessary use of a variable
git-svn-id: https://svn.musicpd.org/mpd/trunk@4586 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 17:55:15 +00:00
J. Alexander Treuman
8e8fd7f1d7 Use memcmp to compare audio formats
git-svn-id: https://svn.musicpd.org/mpd/trunk@4585 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 17:53:53 +00:00
J. Alexander Treuman
ff0a2543a6 Reopen the audio device if the audio format has changed
git-svn-id: https://svn.musicpd.org/mpd/trunk@4584 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 17:51:15 +00:00
J. Alexander Treuman
7f4f3010a5 Add PERMISSION_NONE define, for commands that require no permission
git-svn-id: https://svn.musicpd.org/mpd/trunk@4583 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 15:48:16 +00:00
J. Alexander Treuman
7c9d3c4186 Reformatting initCommands and fillBuffer
git-svn-id: https://svn.musicpd.org/mpd/trunk@4582 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-07 15:46:35 +00:00
Warren Dukes
b9f13d568a remove overzealous asserts (wait for np to clean up his COMMAND_MAX_ARGS stuff)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4575 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-06 14:41:11 +00:00
Warren Dukes
8e53406774 renamce cstrtok to buffer2array. please don't rename functions; especially to names that look extremely std-lib-ish. also, don't use isspace, apparently it's local dependent and potentially consideres ' ' or '\t' not to be a space, or considers other characters to be a space.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4574 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-06 13:53:53 +00:00
Warren Dukes
31de97a42b merge changes from mpd-tree:
-use tree for tagTracker
-eliminate the master process

git-svn-id: https://svn.musicpd.org/mpd/trunk@4571 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-06 06:40:11 +00:00
Eric Wong
a8393d3937 buffer2array: more unit tests
git-svn-id: https://svn.musicpd.org/mpd/trunk@4570 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-05 22:13:54 +00:00
Eric Wong
dd4c6d45f2 buffer2array: fix for trailing sub-quoted text inside a quoted context
Also added a unit test to check for errors/bugs to make sure we
don't have regressions.

Bug found by Qball.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4569 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-05 22:06:12 +00:00
J. Alexander Treuman
c0036bcb45 Our id3 tag buffer should be an array of bytes, not an array of pointers to bytes. Now I know where those warnings came from...
git-svn-id: https://svn.musicpd.org/mpd/trunk@4540 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 04:34:51 +00:00
Eric Wong
055e166619 buffer2array: oops, we forgot to take into account that \ is escaped, too
Any escaped instances of \ must already be inside an already
quoted string, though.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4539 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 04:20:25 +00:00
Eric Wong
31a81e2bcf log: oops, brain fart caused a segfault
git-svn-id: https://svn.musicpd.org/mpd/trunk@4538 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 03:38:39 +00:00
Eric Wong
057a483710 log: switch to using FILE * for logging, since fdprintf isn't reentrant
(and fdprintf was never meant to be reentrant, either)

A huge thanks to welshbyte for reporting the bug and being very
helpful in helping me fix it.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4537 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 03:29:02 +00:00
J. Alexander Treuman
15c2aa765a Undoing more indent silliness
git-svn-id: https://svn.musicpd.org/mpd/trunk@4536 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 02:45:23 +00:00
Warren Dukes
7ad533cca5 remove tree.[ch] from trunk, it will be added back once the mpd-tree branch is
merged back into trunk

git-svn-id: https://svn.musicpd.org/mpd/trunk@4535 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 02:42:27 +00:00
Eric Wong
980c717749 main.c: initialize the verbose flag correctly
git-svn-id: https://svn.musicpd.org/mpd/trunk@4533 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-03 01:57:52 +00:00
Warren Dukes
954dcec273 tree optimization: reduce the number of compares required for insertion and deletion by storing the position in the parent node of each child
git-svn-id: https://svn.musicpd.org/mpd/trunk@4532 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-02 02:06:00 +00:00
Eric Wong
682fe8cee6 audioOutput_oss: cleanups (stolen from -ke)
git-svn-id: https://svn.musicpd.org/mpd/trunk@4518 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 12:39:10 +00:00
Eric Wong
83b619e997 charConv: optimize away a boatload of strdups during update (try #2)
This was originally introduced in r3718, but reverted r3859 since the
original r3718 commit was incorrect (and I was too excited about
the speedup and also lacking in UTF-8 files to notice :x)

git-svn-id: https://svn.musicpd.org/mpd/trunk@4517 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 12:02:47 +00:00
Eric Wong
468c9900ca audio: pause/resume-from-statefile bugfixes,
Oops, I broke pause/resuming from a statefile r4514
Everything should be fixed out.

Also we now avoid opening the audio device until we have a
playable audio_format set.  This is a long-standing bug that got
exposed more blatantly with the single array.

Thanks to MattD in #mpd for reporting my breakage.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4516 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 12:00:17 +00:00
Eric Wong
eb537f84f1 audio: malloc reductions
Just malloc all of the audioOutput array in one shot
to avoid fragmentation and to improve cache locality
when iterating through the array.

We also know name and type members of the AudioOutput
struct won't change in the config, so there's no
need to strdup them.

newAudioOutput => initAudioOutput

git-svn-id: https://svn.musicpd.org/mpd/trunk@4515 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 10:07:16 +00:00
Eric Wong
b0965c317b audio: get rid of the myAudioDevicesEnabled array
It just made things more confusing.  We'll just store
the states in playerData_pd->audioDevicesStates and be
done with it (it's a unsigned byte now).

git-svn-id: https://svn.musicpd.org/mpd/trunk@4514 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 10:07:12 +00:00
Eric Wong
c22a53d373 audio: remove AUDIO_MAX_DEVICES limit
Some people have more than 8 devices (the old limit).  It's
pretty easy to support as many as our hardware and OS allows
so we might as well.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4513 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 10:07:07 +00:00
Eric Wong
89073cfbba logging cleanups
* Moved all logging-related stuff into log.c
(and not myfprintf.c)

* ISO C90-compliant strftime usage:
%e and %R replaced with %d and %H:%M respectively

* Got rid of variadic macros since some old-school compilers
don't like them

* compiling with -DNDEBUG disables the DEBUG() macro

git-svn-id: https://svn.musicpd.org/mpd/trunk@4512 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 04:18:53 +00:00
Eric Wong
2532bc36d2 playerData: move player_pid into the main playerData structure
No point in doing all that extra work for one variable...

git-svn-id: https://svn.musicpd.org/mpd/trunk@4511 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 04:18:48 +00:00
Eric Wong
5aca21a502 Several fixes uncovered with -pedantic
playerData.c:
proper error checking

directory.c:
properly check myFgets() for errors
(it returns NULL on error)

inputPlugins/mp3_plugin.c
get rid of commas at the end of enums

interface.c:
we weren't using long long, so strtoll isn't needed
get rid of void-pointer arithmetic

sllist.c:
get rid of void-pointer arithmetic

compress.c:
get rid of C++ comments, some compilers don't accept them

Note that I personally like void pointer arithmetic, but some
ancient compilers don't support them :(

git-svn-id: https://svn.musicpd.org/mpd/trunk@4510 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 04:18:41 +00:00
Eric Wong
9ccf40b242 src/listen.c: replace bcopy with memcpy
bcopy is old-school, yo

git-svn-id: https://svn.musicpd.org/mpd/trunk@4509 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 04:18:37 +00:00
Warren Dukes
4ff98a9a94 fix a bug when deleting node and CHILDREN_PER_NODE is even
git-svn-id: https://svn.musicpd.org/mpd/trunk@4508 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 03:34:56 +00:00
Warren Dukes
42390c5e3b fix a bug when deleting songs and CHILDREN_PER_NODE > 3
git-svn-id: https://svn.musicpd.org/mpd/trunk@4507 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 03:29:13 +00:00
Warren Dukes
6f695b8d74 a couple of small cleanups
git-svn-id: https://svn.musicpd.org/mpd/trunk@4506 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 01:12:21 +00:00
Warren Dukes
c5cab16509 deletion of tree nodes now works.
next is to clean up the code and make obvious optimizations

git-svn-id: https://svn.musicpd.org/mpd/trunk@4502 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-08-01 00:31:09 +00:00
Warren Dukes
03fdf503f4 some tree bugfixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@4498 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-31 06:54:49 +00:00
Avuton Olrich
60a7abc1f3 No code change, just add headers
git-svn-id: https://svn.musicpd.org/mpd/trunk@4497 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-31 03:37:34 +00:00
Warren Dukes
43fbf992e2 tree updates:
*) add copyright notice
*) implemented node deletion, but not yet tested

git-svn-id: https://svn.musicpd.org/mpd/trunk@4496 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-31 02:20:44 +00:00
Eric Wong
44f9e16922 software volume can now be saved and read from the state file
git-svn-id: https://svn.musicpd.org/mpd/trunk@4495 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 23:32:54 +00:00
Eric Wong
12aec5738b Standardize state_file handling routines.
This way it's easier to manage and extend.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4494 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 23:32:47 +00:00
Eric Wong
381d7232a0 remove deprecated myfprintf wrapper
This shaves another 5-6k because we've removed the paranoid
fflush() calls after every fprintf.  Now we only fflush()
when we need to

git-svn-id: https://svn.musicpd.org/mpd/trunk@4493 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 23:32:39 +00:00
Warren Dukes
71fe871908 tree updates:
*) when CHILDREN_PER_NODE is large, use binary search
*) add a iterator implementation
*) some code cleanup

git-svn-id: https://svn.musicpd.org/mpd/trunk@4492 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 18:43:13 +00:00
Eric Wong
263a9d583a remove clumsy strncpy use
strncpy isn't really safe because it doesn't guarantee null termination,
and we have had to work around it in several places.
strlcpy (from OpenBSD) isn't great, either because it often leaves
errors going unchecked (by truncating strings).

So we'll add the pathcpy_trunc() function with is basically strlcpy
with a hardcoded MAXPATHLEN as the limit, and we'll acknowledge
truncation since we only work on paths and MAXPATHLEN should be
set correctly by the system headers[1].

file-specific notes:

inputStream_http:
eyeballing the changes here, it seems to look alright but I
haven't actually tested it myself.

ls:
don't even bother printing a file if the filename is too long
(and when is it ever?) since we won't be able to read it anyways.

metadataChunk:
it's only metadata, and it's only for showin the user, so truncating
it here souldn't be a big issue.
memset to zero in init is unecessary, so lets not waste cycles

[1] - If the system headers are screwed up, then we're majorly
screwed regardless of what we do :x

git-svn-id: https://svn.musicpd.org/mpd/trunk@4491 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 10:31:41 +00:00
Avuton Olrich
4144afe551 Now fix the mp4 plugin warnings to what they were before the dynamic linking
git-svn-id: https://svn.musicpd.org/mpd/trunk@4490 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 09:13:01 +00:00
Eric Wong
a80168a15b gcc signedness and sparse fixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@4489 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 08:56:55 +00:00
Eric Wong
e86fd65c81 commandError() cleanups, fixup gcc checks
stripped binary size reduced by 9k on my machine from making
commandError a function.  We'll print out error messages slightly
slower before, but the smaller binary is more than worth it.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4488 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 08:47:50 +00:00
Warren Dukes
a0c8e3656b beginnings of a B-tree, currently insertion has been implemented and test
git-svn-id: https://svn.musicpd.org/mpd/trunk@4487 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 07:58:56 +00:00