| Commit message (Collapse) | Author | Files | Lines |
|
Don't connect to JACK before MPD has daemonized.
|
|
Don't connect to PulseAudio before MPD has daemonized.
|
|
With these methods, an output plugin can allocate some global
resources only if it is actually enabled. The method enable() is
called after daemonization, which allows for more sophisticated
resource allocation during that method.
|
|
Don't let the mixer plugin "override" the libpulse callbacks.
Instead, add a "mixer" attribute to the pulse_output struct, and call
the mixer on all interesting events.
|
|
A mixer is useful enough if it can be read. Setting it may be
found unavailable at runtime.
|
|
If the method get_volume() returns -1 and no error object is set, then
the volume is currently unavailable, but the mixer should not be
closed immediately.
|
|
It's possible to have a mixer implementation which does not explicitly
need the methods open() and close().
|
|
Moved the check from pulse_mixer_open() to pulse_mixer_update().
|
|
|
|
There's no point in clearing the audio format before exiting.
|
|
This way, the function call in the main() function does not need
another pair of #ifdef/#endif.
|
|
|
|
Based on the XSPF playlist plugin.
|
|
Added a missing "break".
|
|
An asterisk means that this attribute should not be enforced, and
stays whatever it used to be. This way, some configuration values
work like masks.
|
|
|
|
This allows more sophisticated audio format selection.
|
|
It's a double pointer.
|
|
The value is always non-NULL.
|
|
|
|
.. and keep up the JACK connection while MPD runs. Allocate the ring
buffers on the first open, and free them at MPD exit.
|
|
JACK doesn't need cancel() because it won't do much anyway. Buffers
are small.
|
|
It's a double pointer.
|
|
Don't disconnect from JACK during pause.
|
|
|
|
This is a complete rewrite of the PulseAudio output plugin. It uses
the asynchronous API, which gives us more control over everything.
Additionally, it connects to the PulseAudio server on startup, and
keeps this connection up while MPD runs. During pause, instead of
closing the stream, it enables "cork".
|
|
This allows the mixer object to access its associated audio output
object.
|
|
Flush the hardware volume cache, and send the MIXER idle event. This
allows mixer plugins to detect volume changes.
|
|
|
|
It's a double pointer.
|
|
|
|
This looks nicer in the PulseAudio manager than just "mpd".
|
|
|
|
This allows PulseAudio to do some advanced tweaks.
|
|
I'm not sure about the advantages of calling g_set_application_name(),
because I don't use a task manager (except for ps and kill), but it
sure doesn't hurt.
|
|
Try to be as portable as possible, use GLib path name functions and
macros.
|
|
svn r13289 of libvorbis introduced static callbacks (like OV_CALLBACKS_DEFAULT)
defined in "vorbisfile.h" header. First released version with this change is libvorbis-1.2.2.
In libversion-1.2.3 OV_EXCLUDE_STATIC_CALLBACKS define was added to avoid
warnings about unused static callbacks. Information on the OV_EXCLUDE_STATIC_CALLBACKS
can be found in http://svn.xiph.org/trunk/vorbis/CHANGES.
|
|
When the range end is missing, then the maximum possible value is
assumed.
|
|
These are portable and don't require limits.h.
|
|
The new command "replay_gain_mode" allows the user to switch the
replay gain mode on-the-fly. No more mpd.conf editing.
|
|
|
|
There was no setting for disabling replay gain. It was off when the
"replaygain" setting was not there.
|
|
It will be possible to enable replay gain at runtime even when it is
disabled in the configuration file. This patch enables the preamp
settings in this case.
|
|
|
|
Don't initialize "vc" and "cs" with FLAC__metadata_object_new(); that
value is overwritten by FLAC__metadata_get_tags() and
FLAC__metadata_get_cuesheet().
|
|
The return value of map_directory_child_fs() must be freed.
|
|
Removed the NULL check. If that NULL check was correct, that would
have been a memory leak (vtrack).
|
|
When the player thread unpauses, it sends CANCEL to the output thread,
after having checked that the output is still open. Problem is when
the output thread closes the device before it can process the CANCEL
command - race condition. This patch adds another "open" check inside
the output thread.
|
|
|
|
When the audio output fails to open, MPD pauses playback, but doesn't
reset player.play_audio_format. This leads to an assertion failure in
audio_output_all_check() on the next REFRESH command, because no audio
output is open.
|