Commit Graph

1144 Commits

Author SHA1 Message Date
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
Eric Wong
b38c3fa1bb command: fix find/search commands from the malloc reduction patch
The most we ever use is for search/find, and that limits it to the
number of tags we can have.  Add one for the command, and one extra
to catch errors clients may send us.

Thanks to Qball for reporting this bug

git-svn-id: https://svn.musicpd.org/mpd/trunk@4486 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 05:00:56 +00:00
Eric Wong
da2d7e0c41 myfprintf: parse paths so we can reopen log files correctly
git-svn-id: https://svn.musicpd.org/mpd/trunk@4485 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 04:38:36 +00:00
Eric Wong
a331939d65 fix some warnings introduced in the big malloc-reduction patch
The myfprintf bugs that are fixed here were NOT introduced in the
last patch, it's just that the stricter warning checks from moving
to fprintf caused string format bugs to actually be checked by gcc

git-svn-id: https://svn.musicpd.org/mpd/trunk@4484 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 03:57:29 +00:00
Eric Wong
4cf5d04ca1 interface/connection malloc reductions from mpd-ke
This patch massively reduces the amount of heap allocations at
the interface/command layer.  Most commands with minimal output
should not allocate memory from the heap at all.  Things like
repeatedly polling status, currentsong, and volume changes
should be faster as a result, and more importantly, not a source
of memory fragmentation.

These changes should be safe in that there's no way for a
remote-client to corrupt memory or otherwise do bad stuff to
MPD, but an extra set of eyes to review would be good.  Of
course there's never any warranty :)

No longer do we use FILE * structures in the interface, which means
we don't have to allocate any new memory for most connections.

Now, before you go on about losing the buffering that FILE *
+implies+, remember that myfprintf() never took advantage of
any of the stdio buffering features.

To reduce the diff and make bugs easier to spot in the diff,
I've kept myfprintf in places where we write to files (and not
network interfaces).  Expect myfprintf to go away entirely soon
(we'll use fprintf for writing regular files).

git-svn-id: https://svn.musicpd.org/mpd/trunk@4483 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 03:43:38 +00:00
Eric Wong
4d5b8509eb conf.c: bugfix: print out the number, not the address
git-svn-id: https://svn.musicpd.org/mpd/trunk@4482 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-30 03:43:34 +00:00
Eric Wong
f08342c11f replace buffer2array() with cstrtok() from mpd-ke
This modifies the string in place, and does not allocate any memory from
the heap.  This is considerably smaller than the function it replaces,
and will be instrumental in getting the commands/conf malloc reductions
done.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4481 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-29 18:55:00 +00:00
Eric Wong
f05166a6a0 command.c: shorten common variable names to argc and argv
Any C programmer with half a clue knows they mean argArrayLength
and argArray, and I find the code much easier to read and work with.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4480 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-29 18:54:56 +00:00