aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-03-14MultipleOutputs: ensure input_audio_format is zero-initialisedPete Beardmore1-0/+1
-fixes SIGABRT when mpd is started from a previously paused state -regression introduced by commit: f5a923b9d16e4c63942a033d1bdb2ab150aae342: 'OutputAll: convert to class, move instance to class Partition' -input_audio_format was previously declared using the static modifier ensuring it was zero-initialised by default -the current default-initialised input_audio_format contains garbage at runtime which allows the AudioFormat.IsDefined() 'fail fast' test in MultipleOutputs::Update to pass and the SIGABRT follows in AudioOutput::Open when passed the invalid input_audio_format struct -switching AudioFormat.IsDefined() for AudioFormat.IsValid() is an alternative workaround
2014-03-04PulseOutputPlugin: set icon namePete Beardmore1-0/+1
2014-03-02output/alsa: remove the obsolete Raspberry Pi workaroundMax Kellermann1-36/+0
Has been superseded by the previous commit.
2014-03-02output/alsa: call snd_pcm_prepare() after snd_pcm_drop()Max Kellermann1-0/+25
Don't wait for an optimistic write to fail. This is an improved workaround for the infamous Raspberry Pi bug (see commit af991765). It works much better and comes without the negative side effects. The old workaround is now obsolete.
2014-03-01output/sles: support stereoMax Kellermann1-5/+7
2014-02-24output/pulse: remove bogus g_free() callMax Kellermann1-2/+0
2014-02-24output/httpd/client: eliminate GLibMax Kellermann1-13/+11
2014-02-24output/{shout,win32}: include cleanupMax Kellermann2-3/+0
2014-02-24output/openal: use usleep() instead of g_usleep()Max Kellermann1-2/+2
2014-02-24output/pulse: use setenv() instead of g_setenv()Max Kellermann1-3/+2
There is no advantage in using g_setenv().
2014-02-24output/pulse: remove bogus g_free() callMax Kellermann1-2/+0
2014-02-22output/sles: new output plugin for AndroidMax Kellermann7-0/+817
2014-02-20ConfigGlobal: eliminate function config_get_next_param()Max Kellermann1-3/+2
2014-02-19Mixer: add class MixerListenerMax Kellermann4-11/+31
Use a listener interface instead of GlobalEvents.
2014-02-19output/Init: pass AudioOutput referencesMax Kellermann1-29/+29
2014-02-19output/httpd: move to dedicated directoryMax Kellermann10-4/+349
2014-02-19Timer: move to output/Max Kellermann5-3/+117
2014-02-06mixer/Plugin: pass AudioOutput reference to init()Max Kellermann7-50/+46
Passing a void pointer is unsafe.
2014-02-06MixerPlugin: convert function pointers to Mixer virtual methodsMax Kellermann1-1/+1
2014-02-05Mixer: use reference instead of pointer for MixerPluginMax Kellermann1-2/+2
2014-02-05Mixer: rename struct mixer_plugin to MixerPluginMax Kellermann2-2/+3
2014-02-05MixerPlugin: add EventLoop& init() parameterMax Kellermann4-14/+17
2014-01-30Main, OutputThread: increase kernel timer slack (Linux)Max Kellermann1-0/+2
Allows the kernel to combine timer wakeups with other processes, reducing power usage.
2014-01-29OutputThread: move more functions into the AudioOutput classMax Kellermann2-240/+271
2014-01-29output: rename "chunk" to "current_chunk"Max Kellermann4-28/+30
2014-01-29output: move functions into the AudioOutput structMax Kellermann23-328/+281
2014-01-29AudioOutput: make "plugin" a referenceMax Kellermann5-37/+37
2014-01-29AudioOutput: pass plugin to constructorMax Kellermann18-45/+68
Make it "const".
2014-01-28AudioOutput: add constructor and destructorMax Kellermann19-101/+27
2014-01-28output: rename source filesMax Kellermann16-19/+19
2014-01-28output: rename struct audio_output to AudioOutputMax Kellermann31-267/+268
2014-01-28OutputPlugin: rename struct audio_output_plugin to AudioOutputPluginMax Kellermann38-49/+52
2014-01-28OutputAll: convert to class, move instance to class PartitionMax Kellermann10-815/+791
Another big chunk of code for multi-player support.
2014-01-24Mixer*: move to mixer/Max Kellermann9-13/+13
2014-01-24Filter*: move to filter/Max Kellermann4-11/+11
2014-01-24Client*: move to client/Max Kellermann1-1/+1
2014-01-24Config*: move to config/Max Kellermann8-11/+11
2014-01-23output/*: move to output/plugins/Max Kellermann57-17/+3501
2014-01-23Encoder*: move to src/encoderMax Kellermann3-6/+6
.. and move the plugins to src/encoder/plugins/.
2014-01-13copyright year 2014Max Kellermann35-35/+35
2014-01-07util/Alloc: new library replacing GLib's g_malloc()Max Kellermann1-1/+1
2014-01-06event/SocketMonitor: don't close the socket automaticallyMax Kellermann1-0/+3
Users now have to call Close() explicitly. This simplifies using the class, as most users have automatic socket management already, and Steal() had to be used often.
2014-01-06util/Cast: new utility libraryMax Kellermann1-1/+2
2014-01-05output/httpd: move the clients.clear() call to the IOThreadMax Kellermann1-1/+3
This call is not thread-safe.
2014-01-05output/httpd: import GetEventLoop()Max Kellermann2-3/+5
2014-01-04output/httpd: move Bind()/Unbind() to the IOThreadMax Kellermann1-4/+8
Fixes more thread-safety bugs.
2014-01-04output/httpd: move all broadcast operations to the IOThreadMax Kellermann2-11/+76
Add a Page queue to class HttpdOutput, and use DeferredMonitor to flush this queue inside the IOThread. This fixes a thread-safety issue: much of EventLoop is not thread-safe, and the httpd plugin ignored that problem.
2014-01-04output/httpd: use the IOThreadMax Kellermann1-2/+2
Do all I/O in the IOThread and not in the main thread. This solves an upcoming deadlock problem.
2014-01-04output/httpd: move queue size check to HttpdClient::PushPage()Max Kellermann3-18/+6
Don't let the server care for client problems.
2014-01-04output/httpd: wrap the std::list in std::queueMax Kellermann2-6/+16