1. 19 Nov, 2018 1 commit
    • Max Kellermann's avatar
      check.h: remove obsolete header · ce49d99c
      Max Kellermann authored
      Since we switched from autotools to Meson in commit
      94592c14, we don't need to include
      `config.h` early to properly enable large file support.  Meson passes
      the required macros on the compiler command line instead of defining
      them in `config.h`.
      
      This means we can include `config.h` at any time, whenever we want to
      check its macros, and there are no ordering constraints.
      ce49d99c
  2. 31 Oct, 2018 1 commit
  3. 04 Jun, 2018 1 commit
  4. 02 Jan, 2018 1 commit
  5. 08 May, 2017 1 commit
  6. 08 Jan, 2017 1 commit
  7. 03 Jan, 2017 1 commit
  8. 27 Oct, 2016 1 commit
  9. 26 Feb, 2016 1 commit
  10. 01 Jan, 2015 1 commit
  11. 09 Oct, 2014 1 commit
  12. 08 Feb, 2014 1 commit
  13. 07 Feb, 2014 1 commit
  14. 26 Jan, 2014 1 commit
  15. 25 Jan, 2014 1 commit
    • Max Kellermann's avatar
      neighbor: new subsystem to detect file servers on the local network · 5c4a42ca
      Max Kellermann authored
      This commit adds the NeighborPlugin API which can be used to detect
      nearby file servers that can be used by input plugins.  This list of
      servers is exported using the new "listneighbors" command.  The idle
      even "neighbor" notifies interested clients when a new neighbor is
      found or an existing one is lost.
      
      There's a lot missing currently: protocol&user documentation, and a
      way to "mount" remote servers into the music database.  Obviously,
      some code from the UPnP database plugin can be moved to a neighbor
      plugin.
      5c4a42ca
  16. 24 Jan, 2014 1 commit
  17. 13 Jan, 2014 1 commit
  18. 09 Jan, 2014 1 commit
    • Jean-Francois Dockes's avatar
      UPnP database plugin · 406452f0
      Jean-Francois Dockes authored
      [mk: renamed source files, applied coding style, reduced bloat, using
      MPD's threading library, using MPD's error reporting and logging
      library and refactoring, fixed lots of bugs]
      406452f0
  19. 30 Oct, 2013 1 commit
  20. 19 Oct, 2013 1 commit
  21. 07 Aug, 2012 2 commits
  22. 02 Aug, 2012 1 commit
  23. 21 Mar, 2012 1 commit
  24. 24 Jan, 2012 1 commit
  25. 29 Aug, 2011 1 commit
  26. 29 Jan, 2011 1 commit
  27. 01 Jan, 2010 1 commit
  28. 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
  29. 01 Jan, 2009 1 commit
  30. 30 Dec, 2008 1 commit
  31. 31 Oct, 2008 1 commit
    • Max Kellermann's avatar
      added prefix to header macros · ea515494
      Max Kellermann authored
      "LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
      ffmpeg's fault, because short macros should be reserved for
      applications, but since it's always a good idea to choose prefixed
      macro names, even for applications, we are going to do that in MPD.
      ea515494
  32. 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
  33. 05 Apr, 2007 1 commit
  34. 20 Aug, 2006 1 commit
  35. 06 Aug, 2006 1 commit
  36. 14 Jul, 2006 1 commit
  37. 13 Jul, 2006 1 commit
  38. 16 Nov, 2005 1 commit