aboutsummaryrefslogtreecommitdiffstats
path: root/src/mixer/plugins/AlsaMixerPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-02-19Mixer: add class MixerListenerMax Kellermann1-7/+15
Use a listener interface instead of GlobalEvents.
2014-02-06mixer/Plugin: pass AudioOutput reference to init()Max Kellermann1-1/+1
Passing a void pointer is unsafe.
2014-02-06MixerPlugin: convert function pointers to Mixer virtual methodsMax Kellermann1-44/+8
2014-02-05Mixer: rename struct mixer_plugin to MixerPluginMax Kellermann1-1/+1
2014-02-05MixerPlugin: add EventLoop& init() parameterMax Kellermann1-5/+8
2014-01-24Mixer*: move to mixer/Max Kellermann1-1/+1
2014-01-23output/*: move to output/plugins/Max Kellermann1-1/+1
2014-01-13copyright year 2014Max Kellermann1-1/+1
2014-01-06event/MultiSocketMonitor: add method ClearSocketList()Max Kellermann1-1/+3
2014-01-05event/MultiSocketMonitor: add method ReplaceSocketList()Max Kellermann1-18/+1
Move code from AlsaMixerPlugin.
2014-01-04mixer/alsa: use DeferredMonitor to update file descriptorsMax Kellermann1-14/+7
EventLoop::AddCall() and EventLoop::AddIdle() are unsafe, because we can't cancel those calls.
2013-12-22util/Clamp: generic Clamp() functionMax Kellermann1-2/+2
2013-12-15mixer/alsa: fix deadlockMax Kellermann1-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-13mixer/alsa: use BlockingCall() instead of EventLoop::AddCall()Max Kellermann1-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 NULLMax Kellermann1-9/+9
2013-10-20Util/ASCII: add function StringEqualsCaseASCII()Max Kellermann1-3/+3
Replaces GLib's g_ascii_strcasecmp().
2013-10-02Log: new logging library APIMax Kellermann1-2/+4
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.
2013-09-04util/Error: new error passing libraryMax Kellermann1-46/+40
Replaces GLib's GError.
2013-08-10alsa/mixer: defer InvalidateSockets() call to I/O threadMax Kellermann1-1/+2
2013-08-10mixer/alsa: invoke InvalidateSockets() in constructorMax Kellermann1-1/+3
2013-08-10event/MultiSocketMonitor: PrepareSockets() returns timeoutMax Kellermann1-3/+5
Simplify the API, don't use GLib specific integer type.
2013-08-07mixer/alsa: use AllocatedArray for the pollfd bufferMax Kellermann1-3/+5
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-4/+5
2013-08-04MixerPlugin: pass config_param referenceMax Kellermann1-10/+10
2013-07-30output_api: convert to C++Max Kellermann1-1/+1
2013-04-16MixerInternal: convert to classMax Kellermann1-10/+8
2013-04-16mixer/Alsa: convert to a classMax Kellermann1-67/+103
2013-02-22mixer_plugin: convert to C++Max Kellermann1-1/+1
2013-01-15mixer/Alsa: use MultiSocketMonitorMax Kellermann1-134/+37
2013-01-09EventPipe: rename to GlobalEventsMax Kellermann1-2/+2
2013-01-09event_pipe.h: convert to C++Max Kellermann1-1/+1
2013-01-09mixer/{alsa,pulse}: convert to C++Max Kellermann1-16/+18
2012-01-05mixer/alsa: listen for external volume changesMax Kellermann1-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-05mixer/alsa: move code to alsa_mixer_setup()Max Kellermann1-25/+34
Better error handling.
2012-01-05mixer/alsa: move code to alsa_mixer_lookup_elem()Max Kellermann1-24/+27
2011-01-29copyright year 2011Max Kellermann1-1/+1
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-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-21mixer_plugin: pass audio_output pointer to mixer_plugin.init()Max Kellermann1-1/+1
This allows the mixer object to access its associated audio output object.
2009-10-20mixer_plugin: use GError for error handlingMax Kellermann1-19/+36
2009-10-20mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann1-4/+4
2009-04-28alsa_mixer: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-2/+2
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28alsa_mixer: add mixer_index optionDaniel Kahn Gillmor1-2/+7
This allows you to select controls with duplicate names.
2009-04-21alsa_mixer: call snd_config_update_free_global() in finish()Max Kellermann1-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-27mixer: assert that the new volume value is validMax Kellermann1-4/+0
Added an assertion in mixer_set_volume(). Removed the range checks from the ALSA and OSS plugins.
2009-03-26alsa_mixer: initialize "volume_set" in the open() methodMax Kellermann1-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-26alsa_mixer: removed superfluous checksMax Kellermann1-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-26alsa_mixer: pass default device to config_get_block_string()Max Kellermann1-14/+7
Instead of replacing NULL with the default device in the open() method, pass the default device to config_get_block_string().
2009-03-26alsa_mixer: make "device" and "control" constMax Kellermann1-6/+5
Use config_get_block_string() instead of config_dup_block_string().
2009-03-26mixer_control: close mixer on failureMax Kellermann1-3/+0
When getting or setting the volume fails, the MPD core close the mixer. Moved the duplicated code from the mixer plugins.