Max Kellermann 
							
						 
					 
					
						
						
							
						
						bde3d14339 
					 
					
						
						
							
							output: consistently lock audio output objects  
						
						... 
						
						
						
						Always keep the audio_output object locked within the output thread,
unless a plugin method is called.  This fixes several race conditions. 
						
						
					 
					
						2009-10-29 17:06:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1403172ef3 
					 
					
						
						
							
							output_plugin: added method "drain"  
						
						... 
						
						
						
						drain() is the opposite of cancel(): it waits until all data in the
buffer has finished playing.  Instead of implicitly draining in the
close() method like the ALSA plugin has been doing it forever, let the
output thread decide whether to drain or to cancel. 
						
						
					 
					
						2009-10-29 15:59:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f74ee1a352 
					 
					
						
						
							
							output/alsa: don't recover on CANCEL  
						
						... 
						
						
						
						The recovery is for nothing if we get CLOSE afterwards.  Let's not
recover in the cancel() method, and let the next play() call sort it
out. 
						
						
					 
					
						2009-10-29 15:59:35 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cf8d278b78 
					 
					
						
						
							
							output_thread: removed redundant filter_close() call  
						
						... 
						
						
						
						Don't call filter_close() right after ao_close(). 
						
						
					 
					
						2009-10-29 15:58:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						82af161210 
					 
					
						
						
							
							output/pulse: initialize pulse_output.mixer  
						
						... 
						
						
						
						This variable was uninitialized and led to crashes. 
						
						
					 
					
						2009-10-29 15:58:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9fed97b1f1 
					 
					
						
						
							
							decoder/ffmpeg: removed the "author" vs "artist" workaround  
						
						... 
						
						
						
						libavformat gives us the song artist in the "author" field.  Since we
use av_metadata_conv(), we don't need to check for "artist". 
						
						
					 
					
						2009-10-28 22:17:10 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						04816a6369 
					 
					
						
						
							
							decoder/ffmpeg: convert metadata  
						
						... 
						
						
						
						Convert the metadata with the libavformat function av_metadata_conv().
This ensures that canonical tag names are provided by libavformat, and
we can remove the "artist" vs "author" workaround. 
						
						
					 
					
						2009-10-28 22:12:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d083032236 
					 
					
						
						
							
							update: delete ignored symlinks from database  
						
						... 
						
						
						
						When you disable the "follow_outside_symlinks" or the
"follow_inside_symlinks" setting, the next update should remove the
now-ignored files from the database. 
						
						
					 
					
						2009-10-27 22:06:28 +01:00 
						 
				 
			
				
					
						
							
							
								Alam Arias 
							
						 
					 
					
						
						
							
						
						83a9cf74fb 
					 
					
						
						
							
							include pulse/version.h for PA_CHECK_VERSION  
						
						
						
						
					 
					
						2009-10-27 07:46:53 +01:00 
						 
				 
			
				
					
						
							
							
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						a13e9832e7 
					 
					
						
						
							
							encoder: renaming none_encoder to null_encoder  
						
						
						
						
					 
					
						2009-10-26 20:02:34 +01:00 
						 
				 
			
				
					
						
							
							
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						f67426871b 
					 
					
						
						
							
							mpd.conf: new bool config value for enabling/disabling inotify update  
						
						
						
						
					 
					
						2009-10-26 19:14:40 +01:00 
						 
				 
			
				
					
						
							
							
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						2bfddd4310 
					 
					
						
						
							
							encoder: new encoder plugin which just pass data through  
						
						
						
						
					 
					
						2009-10-24 19:01:15 +02:00 
						 
				 
			
				
					
						
							
							
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						7b343eaf50 
					 
					
						
						
							
							add --disable-inotify for configure to disable inotify when autodetected  
						
						
						
						
					 
					
						2009-10-24 18:24:29 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ac830468bf 
					 
					
						
						
							
							output/jack: implement methods enable()/disable()  
						
						... 
						
						
						
						Don't connect to JACK before MPD has daemonized. 
						
						
					 
					
						2009-10-23 10:56:25 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7547b1170b 
					 
					
						
						
							
							output/pulse: implement methods enable()/disable()  
						
						... 
						
						
						
						Don't connect to PulseAudio before MPD has daemonized. 
						
						
					 
					
						2009-10-23 10:56:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e53ca368a5 
					 
					
						
						
							
							output_plugin: added methods enable() and disable()  
						
						... 
						
						
						
						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. 
						
						
					 
					
						2009-10-23 10:55:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c426a0bc5c 
					 
					
						
						
							
							output/pulse: call mixer on state changes  
						
						... 
						
						
						
						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. 
						
						
					 
					
						2009-10-23 10:33:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						acc99da73d 
					 
					
						
						
							
							mixer_control: don't close the mixer if set_volume() fails  
						
						... 
						
						
						
						A mixer is useful enough if it can be read.  Setting it may be
found unavailable at runtime. 
						
						
					 
					
						2009-10-23 10:33:23 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c4f895daf4 
					 
					
						
						
							
							mixer_plugin: get_volume() may return -1 if unavailable  
						
						... 
						
						
						
						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. 
						
						
					 
					
						2009-10-23 10:32:25 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ede828c910 
					 
					
						
						
							
							mixer_control: allow methods "open" and "close" to be NULL  
						
						... 
						
						
						
						It's possible to have a mixer implementation which does not explicitly
need the methods open() and close(). 
						
						
					 
					
						2009-10-23 09:15:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7dd172efec 
					 
					
						
						
							
							mixer/pulse: don't get volume if stream is not yet ready  
						
						... 
						
						
						
						Moved the check from pulse_mixer_open() to pulse_mixer_update(). 
						
						
					 
					
						2009-10-22 20:28:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						80ac82c8fb 
					 
					
						
						
							
							output/fifo: renamed source to fifo_output_plugin.c  
						
						
						
						
					 
					
						2009-10-22 19:23:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fd182f6d1e 
					 
					
						
						
							
							Makefile.am: enable the "subdir-objects" option  
						
						... 
						
						
						
						Don't clutter the top directory with *.o files. 
						
						
					 
					
						2009-10-22 18:23:22 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a05d0d5d94 
					 
					
						
						
							
							audio: removed function finishAudioConfig()  
						
						... 
						
						
						
						There's no point in clearing the audio format before exiting. 
						
						
					 
					
						2009-10-22 17:12:32 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0107ef2aad 
					 
					
						
						
							
							main: put #ifdef inside winsock_init()  
						
						... 
						
						
						
						This way, the function call in the main() function does not need
another pair of #ifdef/#endif. 
						
						
					 
					
						2009-10-22 17:12:28 +02:00 
						 
				 
			
				
					
						
							
							
								SF Markus Elfring 
							
						 
					 
					
						
						
							
						
						a153f21315 
					 
					
						
						
							
							permission: improve const-correctness  
						
						
						
						
					 
					
						2009-10-22 17:11:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						294aaf7a90 
					 
					
						
						
							
							playlist: new ASX playlist plugin  
						
						... 
						
						
						
						Based on the XSPF playlist plugin. 
						
						
					 
					
						2009-10-21 23:39:47 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2024763d2a 
					 
					
						
						
							
							playlist/xspf: ignore text in root, playlist, tracklist  
						
						... 
						
						
						
						Added a missing "break". 
						
						
					 
					
						2009-10-21 23:27:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9526fdbe73 
					 
					
						
						
							
							audio_format: wildcards allowed in audio_format configuration  
						
						... 
						
						
						
						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. 
						
						
					 
					
						2009-10-21 23:01:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a5c4566fa1 
					 
					
						
						
							
							audio_parser: moved code to separate functions  
						
						
						
						
					 
					
						2009-10-21 23:01:03 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2c05430002 
					 
					
						
						
							
							output: convert config_audio_format to an audio_format struct  
						
						... 
						
						
						
						This allows more sophisticated audio format selection. 
						
						
					 
					
						2009-10-21 22:37:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						643650dba7 
					 
					
						
						
							
							audio_parser: renamed parameter "error" to "error_r"  
						
						... 
						
						
						
						It's a double pointer. 
						
						
					 
					
						2009-10-21 22:22:23 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8cb6854da4 
					 
					
						
						
							
							audio: removed config_param.value NULL check  
						
						... 
						
						
						
						The value is always non-NULL. 
						
						
					 
					
						2009-10-21 22:22:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						83844ec239 
					 
					
						
						
							
							output/jack: make ringbuffer_size a size_t  
						
						
						
						
					 
					
						2009-10-21 21:39:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1bfd25be35 
					 
					
						
						
							
							output/jack: connect to server on MPD startup  
						
						... 
						
						
						
						.. and keep up the JACK connection while MPD runs.  Allocate the ring
buffers on the first open, and free them at MPD exit. 
						
						
					 
					
						2009-10-21 21:37:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cee216f2dc 
					 
					
						
						
							
							output/jack: removed the empty "cancel" method  
						
						... 
						
						
						
						JACK doesn't need cancel() because it won't do much anyway.  Buffers
are small. 
						
						
					 
					
						2009-10-21 21:01:00 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						27c246e8d9 
					 
					
						
						
							
							output/jack: renamed parameter "error" to "error_r"  
						
						... 
						
						
						
						It's a double pointer. 
						
						
					 
					
						2009-10-21 20:13:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1ff39476eb 
					 
					
						
						
							
							output/jack: implement the "pause" method  
						
						... 
						
						
						
						Don't disconnect from JACK during pause. 
						
						
					 
					
						2009-10-21 18:33:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						acfd9a73bc 
					 
					
						
						
							
							output/jack: renamed source to jack_output_plugin.c  
						
						
						
						
					 
					
						2009-10-21 18:33:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b479a264b6 
					 
					
						
						
							
							pulse: code rewrite using the asynchronous libpulse API  
						
						... 
						
						
						
						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". 
						
						
					 
					
						2009-10-21 10:30:42 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ac32f36e4e 
					 
					
						
						
							
							mixer_plugin: pass audio_output pointer to mixer_plugin.init()  
						
						... 
						
						
						
						This allows the mixer object to access its associated audio output
object. 
						
						
					 
					
						2009-10-21 09:48:41 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b8ccc885c8 
					 
					
						
						
							
							volume: added PIPE_EVENT_MIXER  
						
						... 
						
						
						
						Flush the hardware volume cache, and send the MIXER idle event.  This
allows mixer plugins to detect volume changes. 
						
						
					 
					
						2009-10-21 09:48:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1a6ed81193 
					 
					
						
						
							
							output_thread: check again if output is open on PAUSE  
						
						... 
						
						
						
						Basically the same as the 0.15.5 patch "check again if output is open
on CANCEL".  Same race condition, same fix. 
						
						
					 
					
						2009-10-21 08:07:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4e2fb3fb89 
					 
					
						
						
							
							mixer_plugin: use GError for error handling  
						
						
						
						
					 
					
						2009-10-20 22:10:56 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9cd2129eeb 
					 
					
						
						
							
							output_init: renamed parameter "error" to "error_r"  
						
						... 
						
						
						
						It's a double pointer. 
						
						
					 
					
						2009-10-20 21:26:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						097e200a97 
					 
					
						
						
							
							mixer/{oss,alsa}: renamed the mixer source files  
						
						
						
						
					 
					
						2009-10-20 21:23:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bd28caed3c 
					 
					
						
						
							
							output/pulse: renamed context to "Music Player Daemon"  
						
						... 
						
						
						
						This looks nicer in the PulseAudio manager than just "mpd". 
						
						
					 
					
						2009-10-20 21:07:38 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bc4266bef8 
					 
					
						
						
							
							pulse: renamed source files  
						
						
						
						
					 
					
						2009-10-20 21:05:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bc629c8a3e 
					 
					
						
						
							
							pulse: announce "media.role=music"  
						
						... 
						
						
						
						This allows PulseAudio to do some advanced tweaks. 
						
						
					 
					
						2009-10-20 21:02:10 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2e9e34aa40 
					 
					
						
						
							
							main: call g_set_application_name()  
						
						... 
						
						
						
						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. 
						
						
					 
					
						2009-10-20 21:02:00 +02:00