1. 02 Nov, 2008 1 commit
  2. 29 Oct, 2008 8 commits
  3. 28 Oct, 2008 1 commit
  4. 23 Oct, 2008 2 commits
    • Max Kellermann's avatar
      audio: allow 24 and 8 bit output · 80603cf6
      Max Kellermann authored
      I added 24 bit support a while ago, but it wasn't possible to force 24
      bit output.  Add 24 and 8 bit to the list of allowed sample sizes.
      Although 8 bit audio isn't as widely used as 24 bit, there is no
      reason to exclude it.
      80603cf6
    • Max Kellermann's avatar
      output_buffer: don't split frames · 980f2ca5
      Max Kellermann authored
      Splitting a frame between two buffer chunks causes distortion in the
      output.  MPD used to assume that the chunk size 1020 would never cause
      splitted frames, but that isn't the case for 24 bit stereo (127.5
      frames), and even less for files with even more channels.
      980f2ca5
  5. 14 Oct, 2008 1 commit
    • Max Kellermann's avatar
      command: added command "idle" · a3e3d2c9
      Max Kellermann authored
      "idle" waits until something noteworthy happens on the server,
      e.g. song change, playlist modified, database updated.  This allows
      clients to keep up to date without polling.
      a3e3d2c9
  6. 13 Oct, 2008 1 commit
  7. 11 Oct, 2008 3 commits
    • Max Kellermann's avatar
      audio: renamed the audio_format variables · 80a2c937
      Max Kellermann authored
      Renamed audio_configFormat to configured_audio_format.  Renamed
      audio_buffer.format to input_audio_format.  Simplified its
      initialization in openAudioDevice().
      80a2c937
    • Max Kellermann's avatar
      audio: removed enum ad_state · 336b1930
      Max Kellermann authored
      All what's left from ad_state is a simple boolean flag (ENABLE /
      DISABLE).  Convert it to a C99 bool.
      336b1930
    • Max Kellermann's avatar
      audio: removed audio_buffer.buffer · c297c855
      Max Kellermann authored
      audio.c maintained one of MPD's many layers of audio buffers.  It was
      without any benefit, since playAudio() can simply send the source
      buffer directly to the audio output plugin.
      c297c855
  8. 10 Oct, 2008 3 commits
  9. 08 Oct, 2008 1 commit
  10. 29 Sep, 2008 2 commits
    • Max Kellermann's avatar
      audio_output: added method pause() · 6e21e24c
      Max Kellermann authored
      pause() puts the audio output into pause mode: if supported, it may
      perform a special action, which keeps the device open, but does not
      play anything.  Output plugins like "shout" might want to play silence
      during pause, so their clients won't be disconnected.  Plugins which
      do not support pausing will simply be closed, and have to be reopened
      when unpaused.
      
      This pach includes an implementation for the shout plugin, which
      sends silence chunks.
      6e21e24c
    • Eric Wong's avatar
      Switch to C99 types (retaining compat with old compilers) · 0352766d
      Eric Wong authored
      Seeing the "mpd_" prefix _everywhere_ is mind-numbing as the
      mind needs to retrain itself to skip over the first 4 tokens of
      a type to get to its meaning.  So avoid having extra characters
      on my terminal to make it easier to follow code at 2:30 am in
      the morning.
      
      Please report any new issues you may come across on Free
      toolchains.  I realize how difficult it can be to build/maintain
      cross-compiling toolchains and I have no intention of forcing
      people to upgrade their toolchains to build mpd.
      
      Tested with gcc 2.95.4 and and gcc 4.3.1 on x86-32.
      0352766d
  11. 28 Sep, 2008 1 commit
  12. 26 Sep, 2008 1 commit
    • Max Kellermann's avatar
      audio_output: workaround for deadlock · e2a12dee
      Max Kellermann authored
      During debugging, I found a deadlock between flushAudioBuffer() and
      the audio_output_task(): audio_output_task() didn't notice that there
      is a command, and flushAudioBuffer() waited forever in notify_wait().
      I am not sure yet what is the real cause; work around this for now by
      waking up non-finished audio outputs in every iteration.
      e2a12dee
  13. 24 Sep, 2008 4 commits
    • Max Kellermann's avatar
      output: removed DEVICE_ON, DEVICE_OFF · 9a5b5998
      Max Kellermann authored
      To check whether a device is really on or off, we should rather check
      audio_output.open, instead of managing another variable.  Wrap
      audio_output.open in the inline function audio_output_is_open() and
      use it instead of DEVICE_ON and DEVICE_OFF.
      9a5b5998
    • Max Kellermann's avatar
      output: semi-asynchronous playback · 2b782b82
      Max Kellermann authored
      Send an output buffer to all output plugins at the same time, instead
      of waiting for each of them separately.  Make several functions
      non-blocking, and introduce the new function audio_output_wait_all()
      to synchronize with all audio output threads.
      2b782b82
    • Max Kellermann's avatar
      output: call send_tag() only if device is on · 6bbea44e
      Max Kellermann authored
      Why send tags to a device which isn't enabled?
      6bbea44e
    • Max Kellermann's avatar
      output: make "struct audio_output" opaque for output plugins · acc4a0ba
      Max Kellermann authored
      We have eliminated direct accesses to the audio_output struct from
      the all output plugins.  Make it opaque for them, and move its real
      declaration to output_internal.h, similar to decoder_internal.h.
      
      Pass the opaque structure to plugin.init() only, which will return the
      plugin's data pointer on success, and NULL on failure.  This data
      pointer will be passed to all other methods instead of the
      audio_output struct.
      acc4a0ba
  14. 23 Sep, 2008 1 commit
    • Eric Wong's avatar
      start using prefixcmp() · 27fad52c
      Eric Wong authored
      LOC reduction and less noise makes things easier for
      tired old folks to follow.
      27fad52c
  15. 10 Sep, 2008 9 commits
  16. 09 Sep, 2008 1 commit