aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Several bugfixes during exit found by valgrindEric Wong2006-08-143-3/+8
| | | | | | | | | | | | | | | | | 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
* Revert leaks from r4311, and also the leak fixes as a result of thatEric Wong2006-08-145-37/+26
| | | | | | | | | | | | | | | | | | | | | | 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
* Stop decoding once we've dropped samples at the end (it messes up the audio ↵J. Alexander Treuman2006-08-131-1/+3
| | | | | if there's more mp3 to decode) git-svn-id: https://svn.musicpd.org/mpd/trunk@4619 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Presume that the Xing frame count is accurate, and stop decoding when we hit ↵J. Alexander Treuman2006-08-131-2/+9
| | | | | the last frame git-svn-id: https://svn.musicpd.org/mpd/trunk@4618 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audioOutput_alsa.c: avoid changing our internal period and buffer time valuesEric Wong2006-08-121-6/+9
| | | | | | | | 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
* always support DEBUG() logging, even if -DNDEBUGWarren Dukes2006-08-122-9/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4613 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Spelling & GrammarAvuton Olrich2006-08-117-9/+9
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4612 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Bump some more version numbers to rc1 now that it won't break the protocol.J. Alexander Treuman2006-08-102-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4611 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Separate PROTOCOL_VERSION from VERSIONEric Wong2006-08-102-2/+3
| | | | | | 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
* The configure.ac version is used in the mpd reply, and using rc1 breaks some ↵J. Alexander Treuman2006-08-102-3/+3
| | | | | clients. Reverting last commit. git-svn-id: https://svn.musicpd.org/mpd/trunk@4607 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* 0.12.0 -> 0.12.0rc1J. Alexander Treuman2006-08-102-3/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4606 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* labels should be on the left most column, no tabbingWarren Dukes2006-08-094-4/+5
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4605 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* we have the parentPos, so use it when incrementing the tree iterator.Warren Dukes2006-08-091-14/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4604 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* ves the spelling nazi strikes againJ. Alexander Treuman2006-08-084-7/+7
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4602 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* audioOutput_pulse: ansi-fy function declarations (sparse)Eric Wong2006-08-081-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4599 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* more sparse cleanupsEric Wong2006-08-086-49/+46
| | | | | | | | | * 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
* mpc_plugin: fix seeking bugEric Wong2006-08-081-0/+1
| | | | | remember to reset our chunk pointer when seeking git-svn-id: https://svn.musicpd.org/mpd/trunk@4597 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mpc_plugin.c: fix compilation error with MPC_FIXED_POINTEric Wong2006-08-071-1/+1
| | | | | (It sounds like crap though) git-svn-id: https://svn.musicpd.org/mpd/trunk@4596 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* sparse / gcc-2.95 / -pedantic fixesEric Wong2006-08-073-30/+37
| | | | | 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
* rewrite getId3Tag so we can get rid of this silly ID3_TAG_BUFLEN crapJ. Alexander Treuman2006-08-071-28/+21
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4594 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* command: static-fication since commandError is no longer a macroEric Wong2006-08-072-5/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4593 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Indent some #defines in tag.c for better readabilityJ. Alexander Treuman2006-08-071-8/+8
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4592 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Ok, don't use memcmp for comparing audio formats!J. Alexander Treuman2006-08-071-1/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4591 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Eliminate unnecessary use of a variableJ. Alexander Treuman2006-08-071-2/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4586 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Use memcmp to compare audio formatsJ. Alexander Treuman2006-08-071-2/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4585 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Reopen the audio device if the audio format has changedJ. Alexander Treuman2006-08-071-0/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4584 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Add PERMISSION_NONE define, for commands that require no permissionJ. Alexander Treuman2006-08-072-9/+10
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4583 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Reformatting initCommands and fillBufferJ. Alexander Treuman2006-08-072-83/+56
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4582 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* remove overzealous asserts (wait for np to clean up his COMMAND_MAX_ARGS stuff)Warren Dukes2006-08-061-3/+0
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4575 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* renamce cstrtok to buffer2array. please don't rename functions; especially ↵Warren Dukes2006-08-066-26/+42
| | | | | 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
* merge changes from mpd-tree:Warren Dukes2006-08-0612-295/+916
| | | | | | -use tree for tagTracker -eliminate the master process git-svn-id: https://svn.musicpd.org/mpd/trunk@4571 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* buffer2array: more unit testsEric Wong2006-08-051-0/+21
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4570 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* buffer2array: fix for trailing sub-quoted text inside a quoted contextEric Wong2006-08-051-2/+36
| | | | | | | | 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
* configure.ac: fix a typoEric Wong2006-08-041-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4542 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Our id3 tag buffer should be an array of bytes, not an array of pointers to ↵J. Alexander Treuman2006-08-031-4/+4
| | | | | bytes. Now I know where those warnings came from... git-svn-id: https://svn.musicpd.org/mpd/trunk@4540 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* buffer2array: oops, we forgot to take into account that \ is escaped, tooEric Wong2006-08-031-1/+2
| | | | | | 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
* log: oops, brain fart caused a segfaultEric Wong2006-08-031-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4538 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* log: switch to using FILE * for logging, since fdprintf isn't reentrantEric Wong2006-08-031-12/+15
| | | | | | | | (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
* Undoing more indent sillinessJ. Alexander Treuman2006-08-031-8/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4536 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* remove tree.[ch] from trunk, it will be added back once the mpd-tree branch isWarren Dukes2006-08-032-722/+0
| | | | | merged back into trunk git-svn-id: https://svn.musicpd.org/mpd/trunk@4535 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* main.c: initialize the verbose flag correctlyEric Wong2006-08-031-0/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4533 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* tree optimization: reduce the number of compares required for insertion and ↵Warren Dukes2006-08-021-101/+103
| | | | | 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
* audioOutput_oss: cleanups (stolen from -ke)Eric Wong2006-08-011-73/+58
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@4518 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* charConv: optimize away a boatload of strdups during update (try #2)Eric Wong2006-08-011-4/+13
| | | | | | | 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
* audio: pause/resume-from-statefile bugfixes,Eric Wong2006-08-011-45/+37
| | | | | | | | | | | | 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
* audio: malloc reductionsEric Wong2006-08-013-62/+52
| | | | | | | | | | | | | 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
* audio: get rid of the myAudioDevicesEnabled arrayEric Wong2006-08-013-66/+78
| | | | | | | 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
* audio: remove AUDIO_MAX_DEVICES limitEric Wong2006-08-014-24/+33
| | | | | | | 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
* logging cleanupsEric Wong2006-08-018-184/+225
| | | | | | | | | | | | | | * 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
* playerData: move player_pid into the main playerData structureEric Wong2006-08-012-20/+3
| | | | | 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