1. 10 Jan, 2009 1 commit
    • Viliam Mateicka's avatar
      Introducing mixer api · 11c29ccc
      Viliam Mateicka authored
      This patch tryes to introduce pluggable mixer (struct mixer_plugin) along with some basic infrastructure (mixer_* functions). Instance of mixer (struct mixer) is used in
      alsa and oss output plugin
      11c29ccc
  2. 07 Jan, 2009 1 commit
  3. 04 Jan, 2009 1 commit
  4. 02 Jan, 2009 1 commit
  5. 01 Jan, 2009 1 commit
  6. 31 Dec, 2008 1 commit
  7. 29 Dec, 2008 1 commit
  8. 01 Dec, 2008 1 commit
  9. 03 Nov, 2008 1 commit
  10. 01 Nov, 2008 1 commit
  11. 29 Oct, 2008 2 commits
  12. 26 Oct, 2008 2 commits
  13. 14 Oct, 2008 2 commits
  14. 12 Oct, 2008 2 commits
  15. 11 Oct, 2008 2 commits
  16. 10 Oct, 2008 3 commits
  17. 29 Sep, 2008 2 commits
    • Max Kellermann's avatar
      use C99 struct initializers · de7cda1d
      Max Kellermann authored
      The old struct initializers are error prone and don't allow moving
      elements around.  Since we are going to overhaul some of the APIs
      soon, it's easier to have all implementations use C99 initializers.
      de7cda1d
    • 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
  18. 24 Sep, 2008 3 commits
    • 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
    • Max Kellermann's avatar
      output: set audio_output->open=1 in audio_output_task() · 2403d32a
      Max Kellermann authored
      Since the output plugin returns a value indicating success or error,
      we can have the output core code assign the "open" flag.
      2403d32a
    • Max Kellermann's avatar
      output: pass audio_format to plugin.init() and plugin.open() · 3cae6856
      Max Kellermann authored
      Pass the globally configured audio_format as a const pointer to
      plugin.init().  plugin.open() gets a writable pointer which contains
      the audio_format requested by the plugin.  Its initial value is either
      the configured audio_format or the input file's audio_format.
      3cae6856
  19. 23 Sep, 2008 2 commits
    • Max Kellermann's avatar
      audio_format: added audio_format_sample_size() · 128d8c7c
      Max Kellermann authored
      The inline function audio_format_sample_size() calculates how many
      bytes each sample consumes.  This function already takes into account
      that 24 bit samples are 4 bytes long, not 3.
      128d8c7c
    • Eric Wong's avatar
      alsa: re-enable-nonblocking, but sleep if busy · e4f5d6bd
      Eric Wong authored
      Instead of letting ALSA block for us (and potentially allowing
      something stupid on certain hardware or drivers), we do the
      sleeping ourselves.  We calculate the sleep to be a fraction of
      period_time to avoid oversleeping (and thus audible skipping).
      e4f5d6bd
  20. 09 Sep, 2008 1 commit
    • Eric Wong's avatar
      alsa: use blocking instead of non-blocking write · 5c81b716
      Eric Wong authored
      The way we used non-blocking mode was HORRIBLE.
      
      It was non-blocking to ALSA, but we end up blocking in a busy
      loop that does absolutely NOTHING but retry.  We don't check
      for playback cancellation (like we do in decoders) or anything.
      
      This is seriously broken and I can imagine it affects people on
      fast CPUs more because we do asynchronous output buffering and
      our ALSA device will always have data ready.
      5c81b716
  21. 08 Sep, 2008 8 commits
  22. 07 Sep, 2008 1 commit