Commit Graph

79 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
Avuton Olrich
29a25b9933 Add mpd-indent.sh
Indent the entire tree, hopefully we can keep
it indented.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20 16:02:40 +00:00
Avuton Olrich
fd2f9b8e86 Fix the undefined reference to `playerInitReal'
git-svn-id: https://svn.musicpd.org/mpd/trunk@4343 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 20:40:25 +00:00
Avuton Olrich
b4945959ab [CLEANUP] Remove unused function
Remove unused functions from the header,
static where possible
Cleanup whitespace->tabs


git-svn-id: https://svn.musicpd.org/mpd/trunk@4341 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 20:34:46 +00:00
J. Alexander Treuman
2fa7125cce Change shank's email address
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 19:37:45 +00:00
Avuton Olrich
a37348a74f Huge header update, update the copyright and add
the GPL header where necessary

git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13 19:20:34 +00:00
Eric Wong
f8597ccf25 remove C++ style comments
git-svn-id: https://svn.musicpd.org/mpd/trunk@3689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-11-19 10:52:47 +00:00
Qball Cow
32e5f4ca2b DJWLindenaar balanced tree and master process patch
git-svn-id: https://svn.musicpd.org/mpd/trunk@3669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-11-16 14:43:04 +00:00
Warren Dukes
4ec3df0339 implement saved memory by not storing full path
git-svn-id: https://svn.musicpd.org/mpd/trunk@2601 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-11 02:36:25 +00:00
Warren Dukes
c5d27d8eaa merge changes from metadata-rewrite branch
git-svn-id: https://svn.musicpd.org/mpd/trunk@2589 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-10 21:58:27 +00:00
Warren Dukes
405ad9e58b now one can specify multiple bind_to_addresses
git-svn-id: https://svn.musicpd.org/mpd/trunk@2501 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-03 19:42:54 +00:00
Warren Dukes
c5ce5f3c01 new setSigHandlersForDecoder() function, and be sure player/decode processes ignore SIGHUP signals
git-svn-id: https://svn.musicpd.org/mpd/trunk@2492 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-03 14:29:37 +00:00
Warren Dukes
ce10ba4b11 fix a big time bug in metadataChunk (off by one in an array assignment)
also, now we have metadata in our streams

git-svn-id: https://svn.musicpd.org/mpd/trunk@2337 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-10-25 20:09:03 +00:00
Warren Dukes
51dd5c2342 remove an extra line of code
git-svn-id: https://svn.musicpd.org/mpd/trunk@1709 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-29 01:12:47 +00:00
Warren Dukes
80dd76db7f fix C99 stuff for commandError
also some slight optimizations to interfacePrintWithFD() and myfprintf()

git-svn-id: https://svn.musicpd.org/mpd/trunk@1503 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-15 18:06:21 +00:00
Warren Dukes
bfaf6cbd9d fix some streaming metadata issues
git-svn-id: https://svn.musicpd.org/mpd/trunk@1416 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-09 16:58:33 +00:00
Warren Dukes
333c0a6fdd some fixes to metadata stuff
git-svn-id: https://svn.musicpd.org/mpd/trunk@1370 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-07 14:16:10 +00:00
Warren Dukes
81720da06d slightly safer copying of metadataChunk to MpdTag
git-svn-id: https://svn.musicpd.org/mpd/trunk@1359 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-06 20:34:00 +00:00
Warren Dukes
b29f73c819 mechanism for updating metadata while decoding
vorbis comments are updated on the fly for streams
need to decode icy metadata
buffering of metadata needs to be hardened, to ensure that player has already read a particular metachunk or passed over it

git-svn-id: https://svn.musicpd.org/mpd/trunk@1358 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-06 19:41:03 +00:00
Warren Dukes
4e53282469 todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@1352 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-06 16:42:14 +00:00
Warren Dukes
630d33b234 finish ack error codes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1325 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-04 02:51:54 +00:00
Warren Dukes
ef6c500edb clean up ACK error coding a little bit
git-svn-id: https://svn.musicpd.org/mpd/trunk@1321 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-04 00:49:33 +00:00
Warren Dukes
710ec5695b better method for computing total time played
git-svn-id: https://svn.musicpd.org/mpd/trunk@1317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-03 12:34:25 +00:00
Warren Dukes
fe0b751c82 ogg voribs comment parsing on the fly in the decoder
git-svn-id: https://svn.musicpd.org/mpd/trunk@1279 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-01 11:18:25 +00:00
Warren Dukes
4ba7779c89 validateUtf8Tag on stream metadata
git-svn-id: https://svn.musicpd.org/mpd/trunk@1270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-06-01 01:14:23 +00:00
Warren Dukes
1a5b04e4e8 some stream metadata fixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1266 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 23:29:35 +00:00
Warren Dukes
2c1f5365eb little tidying up that will be deleted anyway
git-svn-id: https://svn.musicpd.org/mpd/trunk@1260 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 14:30:54 +00:00
Warren Dukes
000e053ce7 icynames are now copied to title of streams
git-svn-id: https://svn.musicpd.org/mpd/trunk@1258 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 11:42:46 +00:00
Warren Dukes
fd6aa25359 mp3 and ogg plugin stuff
git-svn-id: https://svn.musicpd.org/mpd/trunk@1245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-31 01:21:17 +00:00
Warren Dukes
e40d39b05e removed a debug statement
git-svn-id: https://svn.musicpd.org/mpd/trunk@1112 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-20 11:28:10 +00:00
Warren Dukes
4db5224b47 ogg stream playing! some non-blocking seek bug fixes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1105 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-20 03:44:33 +00:00
Warren Dukes
bf9e2afbf9 just a we bit of changes
git-svn-id: https://svn.musicpd.org/mpd/trunk@1075 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-19 00:34:26 +00:00
Warren Dukes
a19a79227c streaming fixes and such, now it seems to work good, what an annoying bug
to find

git-svn-id: https://svn.musicpd.org/mpd/trunk@1066 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 19:32:05 +00:00
Warren Dukes
c51ad71efa rework stuff so that we can use mime-type of streams to detect type of file
git-svn-id: https://svn.musicpd.org/mpd/trunk@1062 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 13:13:55 +00:00
Warren Dukes
45f8d47384 assume all streams are mp3's, we'll need to open the streams before calling
the decoder routines to fetch the mime-type!

git-svn-id: https://svn.musicpd.org/mpd/trunk@1054 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 04:35:26 +00:00
Warren Dukes
746e7477e0 yes! rudimentary stream playing for mp3's!
be gentle

git-svn-id: https://svn.musicpd.org/mpd/trunk@1051 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-18 03:37:55 +00:00
Warren Dukes
cd3180c701 stuff for configuring the audio output format (sampling rate, channels, bits)
git-svn-id: https://svn.musicpd.org/mpd/trunk@967 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-05-10 02:20:15 +00:00
Warren Dukes
a7076a120b some cleanups of sprintf's => snprintf's
git-svn-id: https://svn.musicpd.org/mpd/trunk@794 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-04-16 15:01:06 +00:00
Warren Dukes
7f29bb1a8d log cycling and a few cleanups
git-svn-id: https://svn.musicpd.org/mpd/trunk@772 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-04-15 05:07:04 +00:00
Warren Dukes
549344d38a add vim shiznit to end of all source files
git-svn-id: https://svn.musicpd.org/mpd/trunk@750 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-04-14 14:53:41 +00:00
Warren Dukes
1f0f1b2892 add a error msg for playerSeek()
git-svn-id: https://svn.musicpd.org/mpd/trunk@736 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-04-13 19:27:22 +00:00
Warren Dukes
860f8bda71 ok, rework myfprintf so it uses write() and never use any file stream
print functions.  this way we can always know wtf is going on!
also, remove some places where we were using fprintf and printf instead of
myfprintf

git-svn-id: https://svn.musicpd.org/mpd/trunk@734 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-04-13 19:08:38 +00:00