aboutsummaryrefslogtreecommitdiffstats
path: root/src/InputInternal.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-10-17thread/{Cond,Mutex}: use "class" instead of "typedef"Max Kellermann1-0/+1
Allows forward-declaration.
2013-01-28InputStream: store references instead of pointersMax Kellermann1-3/+2
2013-01-28InputStream: add constructor/destructorMax Kellermann1-31/+0
Eliminate input_stream_init() and input_stream_deinit().
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-7/+5
2013-01-26input_stream: forward-declare the structMax Kellermann1-1/+1
Hide the definition from C code, to prepare the transition to C++.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann1-2/+2
2011-09-16input_stream: non-blocking I/OMax Kellermann1-1/+23
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-09-14input_internal: add assertionsMax Kellermann1-0/+9
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann1-8/+17
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-03-26mixer: don't reopen failed mixer automaticallyMax Kellermann1-0/+1
If a (global) mixer has been closed due to failure, don't reopen it with every volume get/set. Leave it closed until it is explicitly opened.
2009-03-26mixer: added flag "open"Max Kellermann1-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-14mixer: protect the mixer struct with a mutexMax Kellermann1-2/+1
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.
2009-03-14mixer_api: moved mixer_init() to mixer_api.cMax Kellermann1-4/+7
2009-03-14mixer_api: moved functions to mixer_control.cMax Kellermann1-55/+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).
2009-03-13all: Update copyright header.Avuton Olrich1-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-03-07mixer: check for init() failuresMax Kellermann1-1/+1
When the init() method of a mixer plugin fails, mixer_new() dereferences the NULL pointer.
2009-03-02mixer: adding code to optionally disable all hw mixersViliam Mateicka1-3/+28
2009-02-16mixer_api: replaced method "control()" with "{get,set}_volume()"Max Kellermann1-6/+0
The method control() is too complicated, and overengineered. Replace it with two trivial functions: get_volume() and set_volume().
2009-01-25mixer_api: removed struct mixer_dataMax Kellermann1-16/+11
The mixer plugins should re-use the mixer struct and incorporate it in their object class.
2009-01-25mixer: merged methods "init" and "configure"Max Kellermann1-11/+5
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-25mixer: removed mixer_configure(), configure mixer in mixer_new()Max Kellermann1-7/+3
Allocate the mixer object when it is configured. Merged mixer_configure() into mixer_new(). mixer_new() was quite useless anyway.
2009-01-25mixer: return a mixer struct pointerMax Kellermann1-0/+16
Don't use statically allocated mixer objects.
2009-01-25mixer: make all mixer_plugin pointers constMax Kellermann1-1/+1
The plugin structures must never be modified.
2009-01-25mixer: added missing copyright headersMax Kellermann1-0/+17
2009-01-25conf: const pointers in block get functionsMax Kellermann1-1/+1
All config_get_block_*() functions should accept constant config_param pointers.
2009-01-17conf: no CamelCase, part IMax Kellermann1-1/+1
Renamed functions, types, variables.
2009-01-10Introducing mixer apiViliam Mateicka1-0/+45
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