aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-12-29command: "lsinfo" and "readcomments" allowed for remote filesMax Kellermann4-0/+59
2013-12-29SongUpdate: read tags from songs in an archiveMax Kellermann3-5/+128
Add the TagStream.cxx library, similar to TagFile.cxx, and use it to load tags from song files inside archives.
2013-12-29InputStream: add static method OpenReady()Max Kellermann7-15/+41
Merge some duplicate code.
2013-12-29TagFile: rewind the stream before trying the next pluginMax Kellermann1-1/+2
Got lost in commit c97685fe
2013-12-29DecoderList: add "pure" attributeMax Kellermann1-0/+1
2013-12-29DecoderList: add function decoder_plugins_supports_suffix()Max Kellermann4-54/+20
Replaces decoder_plugin_from_suffix().
2013-12-29DecoderThread: use decoder_plugins_try()Max Kellermann1-32/+44
.. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once.
2013-12-29UpdateContainer: pass suffix instead of DecoderPluginMax Kellermann3-6/+18
Instead of using the first DecoderPlugin that supports the suffix, use the first one that actually implements the "container_scan" method.
2013-12-29TagFile: pass reference instead of pointerMax Kellermann5-9/+6
2013-12-29TagFile: use decoder_plugins_try()Max Kellermann1-41/+54
.. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once.
2013-12-29DecoderList: remove unused function decoder_plugin_from_mime_type()Max Kellermann2-25/+0
2013-12-29daemon: no initgroups() when already running as the configured userMax Kellermann1-1/+5
We can assume that initgroups() would be a no-op in that case, however initgroups() is not allowed for unprivileged users anyway.
2013-12-29Daemon: fix typo in commentMax Kellermann1-1/+1
2013-12-29Daemon: simplify nested "if"Max Kellermann1-5/+4
2013-12-29Daemon: fix typo in castMax Kellermann1-1/+1
2013-12-29input/smbclient: new input pluginMax Kellermann4-0/+238
2013-12-29ls: add "pure" attributeMax Kellermann1-0/+3
2013-12-28pcm/Volume: remove unused function pcm_volume_dither()Max Kellermann1-16/+0
2013-12-28pcm/PcmMix: improved ditheringMax Kellermann4-19/+38
Use the existing PcmDither library.
2013-12-28pcm/Volume: improved ditheringMax Kellermann4-20/+54
Instead of just adding a rectangular random value before shifting back to the normal scale, use the existing PcmDither library.
2013-12-28pcm/PcmDither: inline Dither24To16() and Dither32To16()Max Kellermann2-3/+4
2013-12-28pcm/Volume: remove optimized i386 assemblyMax Kellermann1-50/+0
This code is unable to dither. Until we implement that, let's remove the code for now. i386 isn't relevant anymore anyway.
2013-12-25pcm/Traits: use 32 bit integer for S8 long_typeMax Kellermann1-1/+1
16 bit is not enough for volume calculations.
2013-12-24pcm/Dither: add API documentationMax Kellermann1-0/+18
2013-12-24pcm/Dither: move shift from DitherConvert() to Dither()Max Kellermann1-2/+2
All callers need this shift, so let's move it to the basic method.
2013-12-24pcm/Dither: rename DitherShift() to DitherConvert()Max Kellermann2-11/+11
2013-12-24PlayerThread: log the last song that was playedMax Kellermann1-1/+4
2013-12-24OutputControl: update both ReplayGainFiltersMax Kellermann1-0/+2
The "mode" of the second ReplayGainFilter was never set, and thus replay gain was never applied to the new song during cross-fade.
2013-12-24OutputThread: handle failing ReplayGainFilter::Open()Max Kellermann1-4/+10
Since opening the PcmVolume object can now fail, this case must be handled.
2013-12-23pcm/Volume: convert to classMax Kellermann4-132/+156
Prepare for adding state.
2013-12-23pcm/Volume: apply volume into destination bufferMax Kellermann1-21/+37
2013-12-23pcm/Volume: convert i386 code to template specializationMax Kellermann1-42/+42
2013-12-23pcm/Volume: move code to template pcm_volume_sample()Max Kellermann1-7/+16
2013-12-23pcm/PcmVolume: rename to Volume.cxxMax Kellermann7-6/+6
2013-12-23pcm/PcmConvert: move the Domain instance to Domain.cxxMax Kellermann6-9/+56
Rename pcm_convert_domain to pcm_domain. Move it out so we can use it without depending on the whole PcmConvert library.
2013-12-23ConfigData: initialise "used" in second constructorMax Kellermann1-1/+1
2013-12-22pcm/Dither: convert remaining methods to templatesMax Kellermann2-26/+39
Use the SampleTraits template and let the compiler generate a special case for S32 instead of reusing S24_P32.
2013-12-22pcm/Dither: generic sample dithering using templateMax Kellermann2-13/+25
2013-12-22pcm/Traits: include stddef.h for size_tMax Kellermann1-0/+1
2013-12-22pcm/Traits: add MIN and MAXMax Kellermann2-9/+28
Move from PcmClamp().
2013-12-22pcm/Volume: add constant PCM_VOLUME_BITSMax Kellermann2-1/+6
2013-12-22pcm/Volume: make PCM_VOLUME_1 a "constexpr"Max Kellermann3-13/+13
2013-12-22pcm/Prng: make pcm_prng() inlineMax Kellermann1-1/+1
2013-12-22util/Clamp: generic Clamp() functionMax Kellermann3-3/+53
2013-12-21event/PollGroupPoll: include stddef.h instead of string.hMax Kellermann1-1/+2
2013-12-21input/alsa: fix build with gcc 4.6Max Kellermann1-12/+12
2013-12-20fix FfmpegDecoderPlugin to use relative timestampsSteven O'Brien1-4/+6
2013-12-19add draft ALSA input pluginSteven O'Brien4-0/+244
I've created an elementary input plugin that plays sound from the soundcard, so you can use MPD to listen to anything connected to the line-in jack, or to Video4Linux FM radio cards that send audio through the soundcard. There has been a small number of posts here in the past requesting line-in input, so here is a first, simplistic stab at it. The patch adds a new sheme, alsa://, which causes mpd to play data read directly from a souncdard. It defaults to hw:0,0, but you can pass any ALSA device name in the URI. So, using mpc for example: mpc add alsa:// mpc play will play from device hw:0,0. To use a diffferent device: mpc add alsa://hw:1,0
2013-12-19output/osx: fix typoMax Kellermann1-1/+1
2013-12-19util/fifo_buffer: remove obsolete libraryMax Kellermann3-383/+0