1. 29 Aug, 2011 1 commit
  2. 29 Jan, 2011 1 commit
  3. 25 Sep, 2010 1 commit
    • Thomas Jansen's avatar
      eliminate g_error() usage · 28bcb8bd
      Thomas Jansen authored
      Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
      file 'mpd_error.h'. This macro uses g_critical() to print the error message
      and then exits gracefully in contrast to g_error() which would internally call
      abort() to produce a core dump.
      
      The macro name is distinctive and allows to find all places with dubious error
      handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
      facilitate the eventual removal of this macro it was added in a new header
      file rather than to an existing header file.
      
      This fixes #2995 and #3007.
      28bcb8bd
  4. 25 Jul, 2010 1 commit
  5. 01 Jan, 2010 1 commit
  6. 12 Nov, 2009 1 commit
    • Max Kellermann's avatar
      include config.h in all sources · 5b82ffc2
      Max Kellermann authored
      After we've been hit by Large File Support problems several times in
      the past week (which only occur on 32 bit platforms, which I don't
      have), this is yet another attempt to fix the issue.
      5b82ffc2
  7. 15 Mar, 2009 2 commits
  8. 13 Mar, 2009 1 commit
    • Avuton Olrich's avatar
      all: Update copyright header. · 0aee49bd
      Avuton Olrich authored
      This updates the copyright header to all be the same, which is
      pretty much an update of where to mail request for a copy of the GPL
      and the years of the MPD project. This also puts all committers under
      'The Music Player Project' umbrella. These entries should go
      individually in the AUTHORS file, for consistancy.
      0aee49bd
  9. 03 Jan, 2009 1 commit
  10. 01 Jan, 2009 2 commits
  11. 30 Dec, 2008 4 commits
  12. 24 Nov, 2008 1 commit
  13. 08 Oct, 2008 4 commits
  14. 23 Sep, 2008 1 commit
    • Eric Wong's avatar
      directory: update do its work inside a thread · 3f0ae13c
      Eric Wong authored
      A lot of the preparation was needed (and done in previous
      months) in making update thread-safe, but here it is.
      
      This was the first thing I made work inside a thread when I
      started mpd-uclinux many years ago, and also the last thing I've
      done in mainline mpd to work inside a thread, go figure.
      3f0ae13c
  15. 26 Aug, 2008 2 commits
    • Max Kellermann's avatar
      clean up CPP includes · b6909da7
      Max Kellermann authored
      Include only headers which are really required.  This speeds up
      compilation and helps detect cross-layer accesses.
      b6909da7
    • Max Kellermann's avatar
      enable -Wpointer-arith, -Wstrict-prototypes · a383f451
      Max Kellermann authored
      Also enable -Wunused-parameter - this forces us to add the gcc
      "unused" attribute to a lot of parameters (mostly library callback
      functions), but it's worth it during code refactorizations.
      a383f451
  16. 12 Apr, 2008 2 commits
    • Max Kellermann's avatar
      clean up CPP includes · c89b358c
      Max Kellermann authored
      Try to only include headers which are really needed.  We should
      particularly check all "headers including other headers".  The
      long-term goal is to have a manageable, small API for plugins
      (decoders, output) without so many mpd internals cluttering the
      namespace.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7319 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      c89b358c
    • Eric Wong's avatar
      Initial cut of fork() => pthreads() for decoder and player · 9cf66d0e
      Eric Wong authored
      I initially started to do a heavy rewrite that changed the way processes
      communicated, but that was too much to do at once.  So this change only
      focuses on replacing the player and decode processes with threads and
      using condition variables instead of polling in loops; so the changeset
      itself is quiet small.
      
      * The shared output buffer variables will still need locking
      to guard against race conditions.  So in this effect, we're probably
      just as buggy as before.  The reduced context-switching overhead of
      using threads instead of processes may even make bugs show up more or
      less often...
      
      * Basic functionality appears to be working for playing local (and NFS)
      audio, including:
      play, pause, stop, seek, previous, next, and main playlist editing
      
      * I haven't tested HTTP streams yet, they should work.
      
      * I've only tested ALSA and Icecast.  ALSA works fine, Icecast
      metadata seems to get screwy at times and breaks song
      advancement in the playlist at times.
      
      * state file loading works, too (after some last-minute hacks with
      non-blocking wakeup functions)
      
      * The non-blocking (*_nb) variants of the task management functions are
      probably overused.  They're more lenient and easier to use because
      much of our code is still based on our previous polling-based system.
      
      * It currently segfaults on exit.  I haven't paid much attention
      to the exit/signal-handling routines other than ensuring it
      compiles.  At least the state file seems to work.  We don't
      do any cleanups of the threads on exit, yet.
      
      * Update is still done in a child process and not in a thread.
      To do this in a thread, we'll need to ensure it does proper
      locking and communication with the main thread; but should
      require less memory in the end because we'll be updating
      the database "in-place" rather than updating a copy and
      then bulk-loading when done.
      
      * We're more sensitive to bugs in 3rd party libraries now.
      My plan is to eventually use a master process which forks()
      and restarts the child when it dies:
      locking and communication with the main thread; but should
      require less memory in the end because we'll be updating
      the database "in-place" rather than updating a copy and
      then bulk-loading when done.
      
      * We're more sensitive to bugs in 3rd party libraries now.
      My plan is to eventually use a master process which forks()
      and restarts the child when it dies:
      
      master - just does waitpid() + fork() in a loop
      \- main thread
      \- decoder thread
      \- player thread
      
      At the beginning of every song, the main thread will set
      a dirty flag and update the state file.  This way, if we
      encounter a song that triggers a segfault killing the
      main thread, the master will start the replacement main
      on the next song.
      
      * The main thread still wakes up every second on select()
      to check for signals; which affects power management.
      
      [merged r7138 from branches/ew]
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7240 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      9cf66d0e
  17. 26 Jan, 2008 1 commit
  18. 03 Jan, 2008 1 commit
    • Eric Wong's avatar
      Cleanup #includes of standard system headers and put them in one place · cb8f1af3
      Eric Wong authored
      This will make refactoring features easier, especially now that
      pthreads support and larger refactorings are on the horizon.
      
      Hopefully, this will make porting to other platforms (even
      non-UNIX-like ones for masochists) easier, too.
      
      os_compat.h will house all the #includes for system headers
      considered to be the "core" of MPD.  Headers for optional
      features will be left to individual source files.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      cb8f1af3
  19. 27 Aug, 2007 1 commit
    • J. Alexander Treuman's avatar
      removing debug messages from signal handlers · 1b045d06
      J. Alexander Treuman authored
      As unfortunate as it is to remove such useful debugging messages, it's
      necessary to fix a potential deadlock with signal handling.  A bunch of
      functions the debug functions call aren't safe to call from a signal
      handler.  There are some alternate solutions, but they're neither pretty
      nor simple.  So just remove them entirely for now.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@6828 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      1b045d06
  20. 05 Apr, 2007 1 commit
  21. 20 Aug, 2006 1 commit
  22. 08 Aug, 2006 1 commit
    • Eric Wong's avatar
      more sparse cleanups · f7d150a3
      Eric Wong authored
      * 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
      f7d150a3
  23. 06 Aug, 2006 1 commit
  24. 01 Aug, 2006 1 commit
    • Eric Wong's avatar
      logging cleanups · 89073cfb
      Eric Wong authored
      * 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
      89073cfb
  25. 20 Jul, 2006 1 commit
  26. 18 Jul, 2006 1 commit
  27. 14 Jul, 2006 1 commit
  28. 13 Jul, 2006 1 commit
  29. 18 Nov, 2005 1 commit
  30. 16 Nov, 2005 1 commit