aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* output/pulse: implement methods enable()/disable()Max Kellermann2009-10-231-9/+35
| | | | Don't connect to PulseAudio before MPD has daemonized.
* output_plugin: added methods enable() and disable()Max Kellermann2009-10-2315-1/+213
| | | | | | | 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.
* output/pulse: call mixer on state changesMax Kellermann2009-10-236-131/+213
| | | | | | 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.
* mixer_control: don't close the mixer if set_volume() failsMax Kellermann2009-10-231-2/+0
| | | | | A mixer is useful enough if it can be read. Setting it may be found unavailable at runtime.
* mixer_plugin: get_volume() may return -1 if unavailableMax Kellermann2009-10-232-4/+8
| | | | | | 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.
* mixer_control: allow methods "open" and "close" to be NULLMax Kellermann2009-10-232-20/+5
| | | | | It's possible to have a mixer implementation which does not explicitly need the methods open() and close().
* mixer/pulse: don't get volume if stream is not yet readyMax Kellermann2009-10-221-3/+3
| | | | Moved the check from pulse_mixer_open() to pulse_mixer_update().
* output/fifo: renamed source to fifo_output_plugin.cMax Kellermann2009-10-222-4/+4
|
* Makefile.am: enable the "subdir-objects" optionMax Kellermann2009-10-222-2/+2
| | | | Don't clutter the top directory with *.o files.
* audio: removed function finishAudioConfig()Max Kellermann2009-10-223-8/+0
| | | | There's no point in clearing the audio format before exiting.
* main: put #ifdef inside winsock_init()Max Kellermann2009-10-221-5/+2
| | | | | This way, the function call in the main() function does not need another pair of #ifdef/#endif.
* permission: improve const-correctnessSF Markus Elfring2009-10-222-2/+2
|
* playlist: new ASX playlist pluginMax Kellermann2009-10-215-1/+343
| | | | Based on the XSPF playlist plugin.
* playlist/xspf: ignore text in root, playlist, tracklistMax Kellermann2009-10-211-0/+2
| | | | Added a missing "break".
* audio_format: wildcards allowed in audio_format configurationMax Kellermann2009-10-2114-30/+118
| | | | | | 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.
* audio_parser: moved code to separate functionsMax Kellermann2009-10-211-29/+78
|
* output: convert config_audio_format to an audio_format structMax Kellermann2009-10-213-14/+16
| | | | This allows more sophisticated audio format selection.
* audio_parser: renamed parameter "error" to "error_r"Max Kellermann2009-10-212-10/+12
| | | | It's a double pointer.
* audio: removed config_param.value NULL checkMax Kellermann2009-10-211-1/+1
| | | | The value is always non-NULL.
* output/jack: make ringbuffer_size a size_tMax Kellermann2009-10-211-1/+1
|
* output/jack: connect to server on MPD startupMax Kellermann2009-10-212-69/+120
| | | | | .. and keep up the JACK connection while MPD runs. Allocate the ring buffers on the first open, and free them at MPD exit.
* output/jack: removed the empty "cancel" methodMax Kellermann2009-10-211-6/+0
| | | | | JACK doesn't need cancel() because it won't do much anyway. Buffers are small.
* output/jack: renamed parameter "error" to "error_r"Max Kellermann2009-10-211-12/+12
| | | | It's a double pointer.
* output/jack: implement the "pause" methodMax Kellermann2009-10-212-0/+42
| | | | Don't disconnect from JACK during pause.
* output/jack: renamed source to jack_output_plugin.cMax Kellermann2009-10-213-5/+5
|
* pulse: code rewrite using the asynchronous libpulse APIMax Kellermann2009-10-218-283/+787
| | | | | | | | 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".
* mixer_plugin: pass audio_output pointer to mixer_plugin.init()Max Kellermann2009-10-219-13/+21
| | | | | This allows the mixer object to access its associated audio output object.
* volume: added PIPE_EVENT_MIXERMax Kellermann2009-10-212-0/+19
| | | | | Flush the hardware volume cache, and send the MIXER idle event. This allows mixer plugins to detect volume changes.
* mixer_plugin: use GError for error handlingMax Kellermann2009-10-2011-85/+203
|
* output_init: renamed parameter "error" to "error_r"Max Kellermann2009-10-202-8/+8
| | | | It's a double pointer.
* mixer/{oss,alsa}: renamed the mixer source filesMax Kellermann2009-10-207-15/+17
|
* output/pulse: renamed context to "Music Player Daemon"Max Kellermann2009-10-202-1/+2
| | | | This looks nicer in the PulseAudio manager than just "mpd".
* pulse: renamed source filesMax Kellermann2009-10-205-10/+12
|
* pulse: announce "media.role=music"Max Kellermann2009-10-202-0/+3
| | | | This allows PulseAudio to do some advanced tweaks.
* main: call g_set_application_name()Max Kellermann2009-10-201-0/+2
| | | | | | 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.
* mapper, update, ...: use g_build_filename(), G_DIR_SEPARATOR, ...Max Kellermann2009-10-207-11/+10
| | | | | Try to be as portable as possible, use GLib path name functions and macros.
* Merged release 0.15.5 from branch 'v0.15.x'Max Kellermann2009-10-184-10/+16
|\ | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/flac_plugin.c src/update.c
| * mpd version 0.15.5release-0.15.5Avuton Olrich2009-10-182-2/+2
| |
| * decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann2009-10-162-2/+5
| | | | | | | | | | | | 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().
| * update: fixed memory leak during container scanMax Kellermann2009-10-162-3/+7
| | | | | | | | The return value of map_directory_child_fs() must be freed.
| * update: song_file_new() cannot failMax Kellermann2009-10-161-3/+0
| | | | | | | | | | Removed the NULL check. If that NULL check was correct, that would have been a memory leak (vtrack).
| * output_thread: check again if output is open on CANCELMax Kellermann2009-10-162-1/+3
| | | | | | | | | | | | | | | | 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.
* | decoder/vorbis: avoid unused symbol warnings from vorbisfile.hSerge Ziryukin2009-10-181-0/+1
| | | | | | | | | | | | | | | | 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.
* | command: omitting the range end is possibleMax Kellermann2009-10-183-1/+19
| | | | | | | | | | When the range end is missing, then the maximum possible value is assumed.
* | command: use GLib limit macros in check_range()Max Kellermann2009-10-181-10/+10
| | | | | | | | These are portable and don't require limits.h.
* | doc/protocol.xml: documented range parameter in "delete"Max Kellermann2009-10-181-1/+4
| |
* | command: allow changing replay gain mode on-the-flyMax Kellermann2009-10-175-1/+99
| | | | | | | | | | The new command "replay_gain_mode" allows the user to switch the replay gain mode on-the-fly. No more mpd.conf editing.
* | replay_gain: moved mode parser to replay_gain_set_mode_string()Max Kellermann2009-10-171-6/+19
| |
* | replay_gain: added setting "replaygain off"Max Kellermann2009-10-173-4/+4
| | | | | | | | | | There was no setting for disabling replay gain. It was off when the "replaygain" setting was not there.
* | replay_gain: read configuration even when replay gain is disabledMax Kellermann2009-10-171-4/+3
| | | | | | | | | | | | 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.