| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Provide _lock() and _unlock() to wrap all accesses from the mixer
plugin.
|
|
|
|
| |
Use these instead of exposing the internal roar_t struct.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
To check for errors without reading. The decoder thread wants to do
that, before it passes the input stream to the plugin.
|
| |
|
| |
|
|
|
|
| |
Needed for the I/O thread.
|
|
|
|
| |
config_add_block_param() cannot fail, which makes it easier to use.
|
|
|
|
| |
.. and destruct the output object properly in test/run_output.
|
| |
|
| |
|
| |
|
|
|
|
| |
Clean up the process before exiting.
|
| |
|
|
|
|
|
|
|
|
| |
To demonstrate the new I/O thread. libsoup is well-integrated into
the GLib main loop, which made this plugin pretty easy to write.
As a side effect, we have to initialize the I/O thread in all debug
programs that use the input API.
|
| |
|
|
|
|
|
| |
Sorts remaining songs by priority. This can be used for the
much-demanded "queue feature".
|
|\
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
| |
Allocate a player_control object where needed, and pass it around.
Each "client" object is associated with a "player_control" instance.
This prepares multi-player support.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Declaring the global variable _CRT_fmode is a documented hack. What
an ugly platform!
|
| |
|
| |
|
|
|
|
|
| |
Adds mixrampdb and mixrampdelay commands. Reads MIXRAP_START and
MIXRAMP_END tags from FLAC files and overlaps instead of crossfading.
|
|
|
|
|
|
|
|
|
|
| |
Add an option for each audio output which enables the use of the
hardware mixer, instead of the software volume code.
This is hardware specific, and assumes linear volume control. This is
not the case for hardware mixers which were tested, making this patch
somewhat useless, but we will use it to experiment with the settings,
to find a good solution.
|
|
|
|
|
|
|
| |
Apply the replay gain in the output thread. This means a new setting
will be active instantly, without going through the whole music pipe.
And we might have different replay gain settings for each audio output
device.
|
|
|
|
| |
Use input_stream.uri.
|
|
|
|
|
| |
Log to stderr instead of the default stdout. We need a pristine
stdout for the conversion result.
|
|
|
|
|
| |
Ensure that the pcm_convert() length argument is aligned to the sample
size.
|
|
|
|
|
|
| |
This function replaces the replay_gain_info parameter for
decoder_data(). This allows the decoder to announce replay gain
changes, instead of having to pass the same object over and over.
|
|
|
|
|
|
|
|
| |
Major API redesign: don't let the caller allocate the input_stream
object. Let each input plugin allocate its own (derived/extended)
input_stream pointer. The "data" attribute can now be removed, and
all input plugins simply cast the input_stream pointer to their own
structure (with an "struct input_stream base" as the first attribute).
|
| |
|
|
|
|
|
| |
This is like tag_dup(), but works with an input_stream object instead
of a file path.
|
| |
|
|
|
|
|
|
| |
Added attributes start_ms, end_ms. This allows us to address a
portion of a song file (important for CUE support). There is no
support yet for storing these attributes in the state file.
|
|
|
|
|
|
| |
Remove the data_time parameter from decoder_data(). This patch
eliminates the timestamp counting in most decoder plugins, because the
MPD core will do it automatically by default.
|
|
|
|
|
|
| |
Use the plugin instead of the glue code in normalize.c. This is used
wrapped inside a "autoconv" filter, to enable normalization for all
input file formats.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/archive/bz2_plugin.c
src/archive_api.h
src/input/file_input_plugin.c
test/run_input.c
|
| |
| |
| |
| | |
This enables valgrind debugging after an error occurred.
|
| |
| |
| |
| | |
Enable archive plugin debugging.
|
| |
| |
| |
| |
| | |
Not used by any plugin currently, but this eliminates the g_error()
call in input_plugin_config(), so it's worth it.
|
| | |
|