Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2015-01-21 | config/Param: split block-specific attributes to new struct ConfigBlock | Max Kellermann | 1 | -7/+7 | |
The old struct config_param remains only for top-level string options. | |||||
2015-01-01 | Copyright year 2015 | Max Kellermann | 1 | -1/+1 | |
2014-02-19 | Mixer: add class MixerListener | Max Kellermann | 1 | -7/+15 | |
Use a listener interface instead of GlobalEvents. | |||||
2014-02-06 | mixer/Plugin: pass AudioOutput reference to init() | Max Kellermann | 1 | -1/+1 | |
Passing a void pointer is unsafe. | |||||
2014-02-06 | MixerPlugin: convert function pointers to Mixer virtual methods | Max Kellermann | 1 | -44/+8 | |
2014-02-05 | Mixer: rename struct mixer_plugin to MixerPlugin | Max Kellermann | 1 | -1/+1 | |
2014-02-05 | MixerPlugin: add EventLoop& init() parameter | Max Kellermann | 1 | -5/+8 | |
2014-01-24 | Mixer*: move to mixer/ | Max Kellermann | 1 | -1/+1 | |
2014-01-23 | output/*: move to output/plugins/ | Max Kellermann | 1 | -1/+1 | |
2014-01-13 | copyright year 2014 | Max Kellermann | 1 | -1/+1 | |
2014-01-06 | event/MultiSocketMonitor: add method ClearSocketList() | Max Kellermann | 1 | -1/+3 | |
2014-01-05 | event/MultiSocketMonitor: add method ReplaceSocketList() | Max Kellermann | 1 | -18/+1 | |
Move code from AlsaMixerPlugin. | |||||
2014-01-04 | mixer/alsa: use DeferredMonitor to update file descriptors | Max Kellermann | 1 | -14/+7 | |
EventLoop::AddCall() and EventLoop::AddIdle() are unsafe, because we can't cancel those calls. | |||||
2013-12-22 | util/Clamp: generic Clamp() function | Max Kellermann | 1 | -2/+2 | |
2013-12-15 | mixer/alsa: fix deadlock | Max Kellermann | 1 | -1/+13 | |
This deadlock was a regression by commit 8e38b4f8. Since we currently can't resolve this, let's revert the commit, and add a GLib specific workaround for the build failure. | |||||
2013-12-13 | mixer/alsa: use BlockingCall() instead of EventLoop::AddCall() | Max Kellermann | 1 | -1/+2 | |
This is safer, and works without epoll(). Fixes a build failure with uClibc, which does not support epoll(). | |||||
2013-10-28 | *: use nullptr instead of NULL | Max Kellermann | 1 | -9/+9 | |
2013-10-20 | Util/ASCII: add function StringEqualsCaseASCII() | Max Kellermann | 1 | -3/+3 | |
Replaces GLib's g_ascii_strcasecmp(). | |||||
2013-10-02 | Log: new logging library API | Max Kellermann | 1 | -2/+4 | |
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend. | |||||
2013-09-04 | util/Error: new error passing library | Max Kellermann | 1 | -46/+40 | |
Replaces GLib's GError. | |||||
2013-08-10 | alsa/mixer: defer InvalidateSockets() call to I/O thread | Max Kellermann | 1 | -1/+2 | |
2013-08-10 | mixer/alsa: invoke InvalidateSockets() in constructor | Max Kellermann | 1 | -1/+3 | |
2013-08-10 | event/MultiSocketMonitor: PrepareSockets() returns timeout | Max Kellermann | 1 | -3/+5 | |
Simplify the API, don't use GLib specific integer type. | |||||
2013-08-07 | mixer/alsa: use AllocatedArray for the pollfd buffer | Max Kellermann | 1 | -3/+5 | |
2013-08-04 | *: use gcc.h macros instead of GLib | Max Kellermann | 1 | -4/+5 | |
2013-08-04 | MixerPlugin: pass config_param reference | Max Kellermann | 1 | -10/+10 | |
2013-07-30 | output_api: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-04-16 | MixerInternal: convert to class | Max Kellermann | 1 | -10/+8 | |
2013-04-16 | mixer/Alsa: convert to a class | Max Kellermann | 1 | -67/+103 | |
2013-02-22 | mixer_plugin: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-15 | mixer/Alsa: use MultiSocketMonitor | Max Kellermann | 1 | -134/+37 | |
2013-01-09 | EventPipe: rename to GlobalEvents | Max Kellermann | 1 | -2/+2 | |
2013-01-09 | event_pipe.h: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-09 | mixer/{alsa,pulse}: convert to C++ | Max Kellermann | 1 | -16/+18 | |
2012-01-05 | mixer/alsa: listen for external volume changes | Max Kellermann | 1 | -1/+180 | |
Use libasound's polling functions, implement a bridge to GSource / GPollFD and send idle events to clients when an external program changes the ALSA mixer volume. | |||||
2012-01-05 | mixer/alsa: move code to alsa_mixer_setup() | Max Kellermann | 1 | -25/+34 | |
Better error handling. | |||||
2012-01-05 | mixer/alsa: move code to alsa_mixer_lookup_elem() | Max Kellermann | 1 | -24/+27 | |
2011-01-29 | copyright year 2011 | Max Kellermann | 1 | -1/+1 | |
2009-12-31 | Update copyright notices. | Avuton Olrich | 1 | -1/+1 | |
2009-11-12 | include config.h in all sources | Max Kellermann | 1 | -0/+1 | |
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue. | |||||
2009-10-21 | mixer_plugin: pass audio_output pointer to mixer_plugin.init() | Max Kellermann | 1 | -1/+1 | |
This allows the mixer object to access its associated audio output object. | |||||
2009-10-20 | mixer_plugin: use GError for error handling | Max Kellermann | 1 | -19/+36 | |
2009-10-20 | mixer/{oss,alsa}: renamed the mixer source files | Max Kellermann | 1 | -4/+4 | |
2009-04-28 | alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp() | Max Kellermann | 1 | -2/+2 | |
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons. | |||||
2009-04-28 | alsa_mixer: add mixer_index option | Daniel Kahn Gillmor | 1 | -2/+7 | |
This allows you to select controls with duplicate names. | |||||
2009-04-21 | alsa_mixer: call snd_config_update_free_global() in finish() | Max Kellermann | 1 | -1/+3 | |
snd_config_update_free_global() frees cached ALSA configuration. This keeps valgrind a little bit more quiet. This patch moves the call from the open() method into the finish() method, which seems more natural: it allows the use of the config cache, and improves the cleanup phase. | |||||
2009-03-27 | mixer: assert that the new volume value is valid | Max Kellermann | 1 | -4/+0 | |
Added an assertion in mixer_set_volume(). Removed the range checks from the ALSA and OSS plugins. | |||||
2009-03-26 | alsa_mixer: initialize "volume_set" in the open() method | Max Kellermann | 1 | -2/+2 | |
"volume_set" is an attribute which becomes undefined when the mixer is closed. That means, it must be initialized each time the mixer is opened. | |||||
2009-03-26 | alsa_mixer: removed superfluous checks | Max Kellermann | 1 | -10/+6 | |
The MPD core guarantees that methods are always invoked in a consistent state. This means we can remove lots of checks from the volume methods. | |||||
2009-03-26 | alsa_mixer: pass default device to config_get_block_string() | Max Kellermann | 1 | -14/+7 | |
Instead of replacing NULL with the default device in the open() method, pass the default device to config_get_block_string(). |