aboutsummaryrefslogtreecommitdiffstats
path: root/src/mixer_api.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* mixer: added flag "open"Max Kellermann2009-03-261-0/+5
| | | | | | | | | | | | 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.
* mixer: protect the mixer struct with a mutexMax Kellermann2009-03-141-0/+8
| | | | | | | In some rare cases, there was a race condition between the output thread and the main thread: when you disable/enable an output device in the main thread, this caused a crash in the output thread. Protect the whole mixer struct with a GMutex to prevent that.
* mixer_api: moved mixer_init() to mixer_api.cMax Kellermann2009-03-141-5/+2
|
* mixer_api: moved mixer_plugin imports to mixer_list.hMax Kellermann2009-03-141-8/+1
| | | | | | This patch allows the output plugins to import only mixer_list.h, instead of the full mixer_api.h (which would expose internal structures).
* mixer_api: moved functions to mixer_control.cMax Kellermann2009-03-141-23/+0
| | | | | | mixer_control.h should provide the functions needed to manipulate a mixer, without exposing the internal mixer API (which is provided by mixer_api.h).
* mixer_api: moved struct mixer_plugin to mixer_plugin.hMax Kellermann2009-03-141-41/+1
|
* all: Update copyright header.Avuton Olrich2009-03-131-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.
* pulse mixerDavid Guibert2009-03-071-0/+1
| | | | | | | | | | | | | | | | | | | | This patch introduces the mixer for the pulse output. Technically speaking, the pulse index is needed to get or set the volume. You must define callback fonctions to get this index since the pulse output in mpd is done using the simpe api. The pulse simple api does not provide the index of the newly defined output. So callback fonctions are associated to the pulse context. The list of all the sink input is then retreived. Then we select the name of the mpd pulse output and control its volume by its associated index number. Signed-off-by: Patrice Linel <patnathanael@gmail.com> Signed-off-by: David Guibert <david.guibert@gmail.com> [mk: fixed whitespace errors and broke long lines; removed daemonization changes from main.c]
* mixer: adding code to optionally disable all hw mixersViliam Mateicka2009-03-021-0/+2
|
* mixer: include cleanupMax Kellermann2009-02-161-1/+3
| | | | | Don't include conf.h in mixer_api.h. Use a forward struct declaration instead.
* mixer_api: replaced method "control()" with "{get,set}_volume()"Max Kellermann2009-02-161-6/+28
| | | | | The method control() is too complicated, and overengineered. Replace it with two trivial functions: get_volume() and set_volume().
* mixer_api: removed struct mixer_dataMax Kellermann2009-01-251-9/+10
| | | | | The mixer plugins should re-use the mixer struct and incorporate it in their object class.
* mixer: merged methods "init" and "configure"Max Kellermann2009-01-251-11/+3
| | | | | | | 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.
* mixer: removed mixer_configure(), configure mixer in mixer_new()Max Kellermann2009-01-251-2/+1
| | | | | | | Allocate the mixer object when it is configured. Merged mixer_configure() into mixer_new(). mixer_new() was quite useless anyway.
* mixer: return a mixer struct pointerMax Kellermann2009-01-251-0/+7
| | | | Don't use statically allocated mixer objects.
* mixer: make all mixer_plugin pointers constMax Kellermann2009-01-251-4/+4
| | | | The plugin structures must never be modified.
* mixer: added missing copyright headersMax Kellermann2009-01-251-0/+17
|
* conf: const pointers in block get functionsMax Kellermann2009-01-251-2/+3
| | | | | All config_get_block_*() functions should accept constant config_param pointers.
* conf: no CamelCase, part IMax Kellermann2009-01-171-2/+2
| | | | Renamed functions, types, variables.
* Introducing mixer apiViliam Mateicka2009-01-101-23/+51
| | | | | This patch tryes to introduce pluggable mixer (struct mixer_plugin) along with some basic infrastructure (mixer_* functions). Instance of mixer (struct mixer) is used in alsa and oss output plugin
* renaming mixer.h to mixer_api.hViliam Mateicka2009-01-041-0/+33