1. 09 Nov, 2009 1 commit
    • Max Kellermann's avatar
      player_thread: drain audio outputs at the end of the playlist · 8420f142
      Max Kellermann authored
      When there's no queued song, and the current one has finished playing,
      first make sure that the hardware outputs have really finished playing
      the last chunk: call the drain() method in all audio outputs.  Without
      this patch, MPD stopped playback shortly before the ALSA sound card
      had finished playing.
      8420f142
  2. 03 Nov, 2009 10 commits
  3. 02 Nov, 2009 1 commit
    • Max Kellermann's avatar
      player_thread: check command before waiting during pause · 408d52fe
      Max Kellermann authored
      While paused, the player thread re-locks its mutex and waits for a
      signal.  This is racy: when the command is set while the thread is
      waiting for the lock, it may wait forever.  This patch adds another
      command check before player_wait().
      408d52fe
  4. 31 Oct, 2009 3 commits
  5. 30 Oct, 2009 1 commit
    • Max Kellermann's avatar
      {player,output}_thread: fixed elapsed_time quirks · 73cff374
      Max Kellermann authored
      Right after seeking and song change, the elapsed_time shows old
      information, because the output thread didn't finish a full chunk
      yet.  This patch re-adds a second elapsed_time variable, and keeps
      track of a fallback value, in case the output thread can't provide a
      reliable value.
      73cff374
  6. 29 Oct, 2009 1 commit
  7. 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
  8. 15 Oct, 2009 1 commit
  9. 13 Oct, 2009 1 commit
  10. 08 Oct, 2009 3 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_thread: always clear player_control.next_song on return · 47b5e73a
      Max Kellermann authored
      pc.next_song might be non-NULL even if player.queued==true: when the
      decoder has started decoding the next song, but the result hasn't been
      read yet.
      47b5e73a
    • 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
  11. 13 Aug, 2009 1 commit
  12. 23 Jul, 2009 2 commits
  13. 06 Jul, 2009 2 commits
    • Sébastien Houzé's avatar
      player_thread: log played song in "default" log mode · 468b7d3a
      Sébastien Houzé authored
      Very few lines to log a song URI when it has been entirely played.
      Then mpd logs can be parsed to do statistics.
      468b7d3a
    • 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
  14. 02 Jun, 2009 2 commits
  15. 29 May, 2009 1 commit
  16. 25 Apr, 2009 2 commits
    • Max Kellermann's avatar
      player_thread: pause when all audio outputs fail to play · 472b9947
      Max Kellermann authored
      When all audio outputs have been closed due to failures, pause the
      playback instead of stopping it.  This way, the user may resume
      at the current position after the problem has been dealt with.
      472b9947
    • Max Kellermann's avatar
      player_thread: pause when output fails while seeking · 70faf592
      Max Kellermann authored
      When no audio outputs could be opened while seeking, leave MPD seeked
      at that position and pause playback.  The user may continue from this
      point at any time, as soon as the audio outputs are fixed.  The old
      behaviour triggered an assertion failure: the failure wasn't passed
      properly to the do_play() function, which attempted to play audio
      chunks.
      70faf592
  17. 25 Mar, 2009 2 commits
  18. 17 Mar, 2009 1 commit
  19. 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
  20. 11 Mar, 2009 3 commits