1. 30 Oct, 2013 1 commit
  2. 28 Oct, 2013 2 commits
  3. 21 Oct, 2013 1 commit
  4. 17 Oct, 2013 2 commits
  5. 27 Sep, 2013 3 commits
  6. 04 Sep, 2013 1 commit
  7. 03 Aug, 2013 1 commit
  8. 28 Jul, 2013 1 commit
  9. 25 Jan, 2013 1 commit
    • Max Kellermann's avatar
      PlayerControl: add second Cond object · a9b62a2e
      Max Kellermann authored
      This fixes a deadlock bug introduced by 18076ac9.  After all, the
      second Cond was necessary.
      
      The problem: two threads can wait for a signal at the same time.  The
      player thread waits for the output thread to finish playback.  The
      main thread waits for the player thread to complete a command.  The
      output thread finishes playback, and sends a signal, which
      unfortunately does not wake up the player thread, but the main
      thread.  The main thread sees that the command is still not finished,
      and waits again.  The signal is lost forever, and MPD is deadlocked.
      a9b62a2e
  10. 20 Jan, 2013 1 commit
  11. 10 Jan, 2013 1 commit
  12. 04 Jan, 2013 2 commits
  13. 25 Aug, 2012 1 commit
    • Max Kellermann's avatar
      player_thread: disable cross-fading in "single" mode · f3515505
      Max Kellermann authored
      This commit reimplements the core of the "single" mode.  Instead of
      doing the detection in the playlist code from the outside, it is moved
      to the player thread, which gets a new option called "border_pause".
      It will now pause playback exactly at the beginning of the new song,
      making the feature more reliable.
      
      Now that the player thread knows what will happen, it can suppress
      cross-fading.
      
      Fixes mantis tickets 0003055 and 0003166.
      f3515505
  14. 15 Aug, 2012 1 commit
  15. 08 Aug, 2012 5 commits
  16. 29 Jan, 2011 1 commit
  17. 10 Jan, 2011 2 commits
  18. 21 Mar, 2010 1 commit
    • Tim Phipps's avatar
      Add support for MixRamp tags · e7a515c8
      Tim Phipps authored
      Adds mixrampdb and mixrampdelay commands.  Reads MIXRAP_START and
      MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
      e7a515c8
  19. 01 Jan, 2010 1 commit
  20. 09 Nov, 2009 1 commit
  21. 03 Nov, 2009 1 commit
  22. 31 Oct, 2009 2 commits
  23. 23 Oct, 2009 1 commit
    • Max Kellermann's avatar
      output_plugin: added methods enable() and disable() · e53ca368
      Max Kellermann authored
      With these methods, an output plugin can allocate some global
      resources only if it is actually enabled.  The method enable() is
      called after daemonization, which allows for more sophisticated
      resource allocation during that method.
      e53ca368
  24. 08 Oct, 2009 5 commits
    • Max Kellermann's avatar
      player_thread: get "elapsed" from audio outputs · 448aefaa
      Max Kellermann authored
      Tracking the "elapsed" time from the chunks which we have sent to the
      output pipe is very imprecise: since we have implemented the music
      pipe, we're sending large number of chunks at once, giving the
      "elapsed" time stamp a resolution of usually more than a second.
      
      This patch changes the source of this information to the outputs.  If
      a chunk has been played by all outputs, the "elapsed" time stamp is
      updated.
      
      The new command PLAYER_COMMAND_REFRESH makes the player thread update
      its status information: it tells the outputs to update the chunk time
      stamp.  After that, player_control.elapsed_time is current.
      448aefaa
    • Max Kellermann's avatar
      player_control: eliminate PLAYER_COMMAND_PLAY · d6a6f428
      Max Kellermann authored
      Sending PLAYER_COMMAND_STOP followed by PLAYER_COMMAND_QUEUE does the
      same.  PLAYER_COMMAND_PLAY is redundant.
      d6a6f428
    • Max Kellermann's avatar
      player_control: no CamelCase · e5857cb7
      Max Kellermann authored
      e5857cb7
    • Max Kellermann's avatar
      player_control: bundle "get" functions in pc_get_status() · 76953a97
      Max Kellermann authored
      The new player_status struct replaces a bunch of playerGetX()
      functions.  When we add proper locking to the player_control struct,
      we will only need to lock once for the "status" command.
      76953a97
    • Max Kellermann's avatar
      player_control: allocate getPlayerErrorStr() result · 128a5fa4
      Max Kellermann authored
      This lets us eliminate the static fixed-size buffer.
      128a5fa4
  25. 06 Jul, 2009 1 commit
    • Max Kellermann's avatar
      output: use the software mixer plugin · 0275690b
      Max Kellermann authored
      Do all the software volume stuff inside each output thread, not in the
      player thread.  This allows one software mixer per output device, and
      also allows the user to configure the mixer type (hardware or
      software) for each audio output.
      
      This moves the global "mixer_type" setting into the "audio_output"
      section, deprecating the "mixer_enabled" flag.
      0275690b