1. 08 Oct, 2008 7 commits
  2. 07 Oct, 2008 11 commits
  3. 06 Oct, 2008 15 commits
    • Eric Wong's avatar
      autotools: tidy up make dist · 016af692
      Eric Wong authored
      * Add missing headers in Makefile.am
      * remove mp4ff.dsp (Win32 crap)
      * Add scripts, m4, bs, autogen.sh to allow for hotfixes by the
        SCM-challenged.  (downloading the source via git is NOT a
        lightweight operation for everybody).
      016af692
    • Eric Wong's avatar
      autotools: add pthreads linker support · a792dc5b
      Eric Wong authored
      This is needed for people that don't use any of the following:
      JACK, ALSA, libmikmod, Shout.
      a792dc5b
    • Eric Wong's avatar
      Add .gitignore · 09c78663
      Eric Wong authored
      These patterns have been sitting in my private .git/info/exclude
      files since 2005 because we used to use SVN.
      09c78663
    • Eric Wong's avatar
      song: stop storing song_type · f1c53fe0
      Eric Wong authored
      We already know if a song is a URL or not based on whether it
      has parentDir defined or not.  Hopefully one day in the future
      we can drop HTTP support from MPD entirely when an HTTP
      filesystem comes along and we can access streams via open(2).
      f1c53fe0
    • Max Kellermann's avatar
      song: don't make the struct packed · 22e40b61
      Max Kellermann authored
      The "packed" attribute may have negative side effects on performance.
      Remove the "packed" attribute, and increase the size of "song.url" to
      a multiple of the machine word size.
      22e40b61
    • Eric Wong's avatar
      song: use flex arrays to store song->url · 267b2cd6
      Eric Wong authored
      Reduce the number of allocations we make, so there's less
      pressure on the allocator and less overhead to keep track
      of the allocations in.
      267b2cd6
    • Eric Wong's avatar
      song: get rid of newNullSong() · 43761441
      Eric Wong authored
      It didn't save us any lines of code nor did it do anything
      useful since we would overwrite everything anyways.
      43761441
    • Eric Wong's avatar
      song: call freeJustSong if newSong fails · dc245f38
      Eric Wong authored
      There's no reason to scan the playlist for a song we
      just allocated.
      dc245f38
    • Eric Wong's avatar
      command: fix return status · d51da61b
      Eric Wong authored
      This got broken when listHandlerFunc was removed.  Since we no
      longer need it and it's confusing, remove processCommandInternal
      and just use process_command.
      d51da61b
    • Eric Wong's avatar
      directory: reuse existing directory if found on update · 836dcc28
      Eric Wong authored
      Instead of allocating a new one, just reuse an existing
      one if one is found when rereading the DB.  This is a small
      makes the previous commit work on subdirectories
      of the root music directory.
      
      [1] "song: better handling of existing songs when rereading DB"
      836dcc28
    • Eric Wong's avatar
      tag: merge clearMpdTag into tag_free · fb4d55c5
      Eric Wong authored
      avoid some redundant clearing logic as well, since the tag is
      getting freed.
      fb4d55c5
    • Eric Wong's avatar
      command: get rid of specialized list handlers · 8faf6487
      Eric Wong authored
      commands should really not behave differently if they're issued
      inside a command list or not; so stop having special handler
      functions to deal with them.  "update" was the only command
      that used this functionality and I changed that in the last
      commit to serialize access.
      8faf6487
    • Eric Wong's avatar
      directory: simplify list update handling logic · 37a8239f
      Eric Wong authored
      Now the "update" command can be issued multiple times regardless
      of whether the client is in list mode or not.
      
      We serialize the update tasks to prevent updates from trampling
      over each other and will spawn another update task
      once the current one is finished updating and reaped.
      
      Right now we cap the queue size to 32 which is probably enough (I
      bet most people usually run update with no argument anyways);
      but we can make it grow/shrink dynamically if needed.  There'll
      still be a hard-coded limit to prevent DoS attacks, though.
      37a8239f
    • Eric Wong's avatar
      main_notify: define main_task so we can use it for assertions · 700f18ee
      Eric Wong authored
      It'll be easier to keep track of what code runs in what
      task/thread this way.
      700f18ee
    • Eric Wong's avatar
      directory: streamline deletes · 19a4803b
      Eric Wong authored
      Instead of relying on the shortname, just pass the song pointer
      to prevent redundant lookups during deletes.
      19a4803b
  4. 29 Sep, 2008 7 commits
    • Max Kellermann's avatar
      pcm_utils: 24 bit support · 6aec6163
      Max Kellermann authored
      Add support for 24 bit PCM samples to all functions.  Note that
      pcm_convertAudioFormat() converts 24 bit samples to 16 bit; to
      preserve full quality, support for "real" 24 bit conversion should be
      added.
      6aec6163
    • Max Kellermann's avatar
      pcm_utils: moved code to special 8/16 bit functions · ac6bc76c
      Max Kellermann authored
      Moved code into separate bit specific functions:
      - pcm_volumeChange() -> pcm_volume_change_X()
      - pcm_add() -> pcm_add_X()
      - pcm_convertTo16bit() -> pcm_convert_8_to_16()
      ac6bc76c
    • Max Kellermann's avatar
      pcm_utils: pass only one buffer size to pcm_mix() · c85b570a
      Max Kellermann authored
      pcm_mix() might overflow the destination buffer if it is smaller than
      the second buffer.  This is ok because the physical buffer size passed
      by cross_fade_apply() is always big enough, but clutters pcm_mix()
      with complicated length checks and contains a dangerous buffer
      overflow pitfall.  Simplify pcm_mix()/pcm_add() and pass only the
      smaller buffer size; let cross_fade_apply() do the memcpy().
      c85b570a
    • 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
    • Max Kellermann's avatar
      audio_output: added function audio_output_is_pending() · c13e8b51
      Max Kellermann authored
      The function audio_output_is_pending() returns whether there is a
      pending command.  This is useful for output plugins as a break
      condition for longer loops.
      c13e8b51
    • 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
    • Max Kellermann's avatar
      decoder: renamed plugin methods · 21d3d300
      Max Kellermann authored
      Why have a "_func" prefix on all method names?  Also don't typedef the
      methods, there is no advantage in that.
      21d3d300