Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
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(). | |||||
2009-03-26 | alsa_mixer: make "device" and "control" const | Max Kellermann | 1 | -6/+5 | |
Use config_get_block_string() instead of config_dup_block_string(). | |||||
2009-03-26 | mixer_control: close mixer on failure | Max Kellermann | 1 | -3/+0 | |
When getting or setting the volume fails, the MPD core close the mixer. Moved the duplicated code from the mixer plugins. | |||||
2009-03-26 | mixer: added flag "open" | Max Kellermann | 1 | -0/+1 | |
Remember if a mixer object is open or closed. Don't call open() again if it is already open. This guarantees that the mixer plugin is always called in a consistent state, and we will be able to remove lots of checks from the implementations. To support mixers which are automatically opened even if the audio output is still closed (to set the volume before playback starts), this patch also adds the "global" flag to the mixer_plugin struct. Both ALSA and OSS set this flag, while PULSE does not. | |||||
2009-03-13 | all: Update copyright header. | Avuton Olrich | 1 | -3/+4 | |
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy. | |||||
2009-02-16 | mixer_api: replaced method "control()" with "{get,set}_volume()" | Max Kellermann | 1 | -71/+73 | |
The method control() is too complicated, and overengineered. Replace it with two trivial functions: get_volume() and set_volume(). | |||||
2009-01-25 | mixer_api: removed struct mixer_data | Max Kellermann | 1 | -7/+12 | |
The mixer plugins should re-use the mixer struct and incorporate it in their object class. | |||||
2009-01-25 | mixer: merged methods "init" and "configure" | Max Kellermann | 1 | -23/+6 | |
Both methods are always called together. There is no point in having them separate. This simplifies the code, because the old configure() method could be called more than once, and had to free old allocations. | |||||
2009-01-25 | mixer: removed mixer_configure_legacy(), AC_MIXER_CONFIGURE | Max Kellermann | 1 | -5/+0 | |
Those have been superseded by the new legacy configuration code. | |||||
2009-01-25 | mixer: make all mixer_plugin pointers const | Max Kellermann | 1 | -1/+1 | |
The plugin structures must never be modified. | |||||
2009-01-25 | mixer: added missing copyright headers | Max Kellermann | 1 | -0/+17 | |
2009-01-25 | conf: allow param==NULL | Max Kellermann | 1 | -3/+0 | |
Return the default value in the conf_get_block_*() functions when param==NULL was passed. This simplifies a lot of code, because all initialization can be done in one code path, regardless whether configuration is present. |