Max Kellermann 
							
						 
					 
					
						
						
							
						
						3546d931a1 
					 
					
						
						
							
							decoder_thread: check for STOP before calling the plugin  
						
						... 
						
						
						
						Before calling the plugin's decode method, we should ensure that we
didn't receive a STOP command during initialization. 
						
						
					 
					
						2009-11-07 15:37:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4dadb965a7 
					 
					
						
						
							
							decoder_thread: moved code to decoder_input_stream_open()  
						
						... 
						
						
						
						This function opens the stream and waits for it to become ready;
meanwhile it checks for STOP commands.  It is code moved from
decoder_run_stream(). 
						
						
					 
					
						2009-11-07 15:35:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f2184db1cd 
					 
					
						
						
							
							decoder_thread: added local variable "dc" in decoder_run_file()  
						
						... 
						
						
						
						Simplify the expressions. 
						
						
					 
					
						2009-11-07 15:24:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						41f3f12709 
					 
					
						
						
							
							output/jack: free source port names on exit  
						
						... 
						
						
						
						Make valgrind happy. 
						
						
					 
					
						2009-11-07 15:17:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5d55b45654 
					 
					
						
						
							
							decoder_list: pass previous plugin pointer to lookup functions  
						
						... 
						
						
						
						Remove the static integer hack, that's not thread safe and sucks. 
						
						
					 
					
						2009-11-07 15:14:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e3da174fca 
					 
					
						
						
							
							decoder_list: moved suffix/mime_type checks to decoder_plugin.c  
						
						
						
						
					 
					
						2009-11-07 15:14:11 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bb862a8ceb 
					 
					
						
						
							
							decoder_list: back to NULL terminated list  
						
						... 
						
						
						
						A NULL terminated list is easier to iterate. 
						
						
					 
					
						2009-11-07 15:14:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9ba900486e 
					 
					
						
						
							
							decoder_thread: open input stream on demand  
						
						... 
						
						
						
						Moved the global input stream opener to decoder_run_stream().
decoder_run_file() now opens the input stream each time a plugin
provides a stream decoder method. 
						
						
					 
					
						2009-11-07 15:10:12 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						587284bae6 
					 
					
						
						
							
							decoder_thread: moved plugin loops to separate functions  
						
						... 
						
						
						
						Tame the large decoder_run_song() function. 
						
						
					 
					
						2009-11-07 14:57:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4c7bfa514f 
					 
					
						
						
							
							uri: added function attributes  
						
						... 
						
						
						
						Let gcc optimize a little bit more. 
						
						
					 
					
						2009-11-07 14:17:28 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f9218423b9 
					 
					
						
						
							
							utils: renamed stringFoundInStringArray()  
						
						... 
						
						
						
						No CamelCase.  Use bool instead of int.  Make both arguments
mandatory. 
						
						
					 
					
						2009-11-06 19:50:47 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ba34d48cf0 
					 
					
						
						
							
							output/jack: dynamic source port list  
						
						... 
						
						
						
						Same as the previous patch: create up to 16 configured source ports.
The plugin tries to do its best at guessing the right combination for
the given input file, the number of source and destination ports. 
						
						
					 
					
						2009-11-06 18:58:35 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2598dd5109 
					 
					
						
						
							
							output/jack: dynamic destination port list  
						
						... 
						
						
						
						Support up to 16 configured destination ports, that should really be
enough for everybody. 
						
						
					 
					
						2009-11-06 18:55:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fac6e9ecdb 
					 
					
						
						
							
							output/jack: renamed option "ports" to "destination_ports"  
						
						... 
						
						
						
						Be more clear which kind of port should be configured here. 
						
						
					 
					
						2009-11-06 01:54:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dbbead6e72 
					 
					
						
						
							
							output/jack: renamed "output ports" to "destination ports"  
						
						... 
						
						
						
						Use the same name as in the libjack API documentation. 
						
						
					 
					
						2009-11-06 01:35:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8cb9f9b070 
					 
					
						
						
							
							playlist_queue: use playlist plugins to load from playlist_directory  
						
						... 
						
						
						
						This patch allows the client to load a playlist file from the playlist
directory with a plugin.  This can be used with the "load" command,
but the client has to pass the file name including the suffix.  We
will probably use the music directory in the future, to support
playlist files inside the music directory. 
						
						
					 
					
						2009-11-06 01:09:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						61cb5df842 
					 
					
						
						
							
							playlist_queue: moved code to playlist_open_remote_into_queue()  
						
						
						
						
					 
					
						2009-11-06 01:07:42 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7e66f34154 
					 
					
						
						
							
							playlist_list: added function playlist_list_open_path()  
						
						... 
						
						
						
						Added an interface for loading playlists from a local file. 
						
						
					 
					
						2009-11-06 01:07:39 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3203b5de5 
					 
					
						
						
							
							playlist: added extm3u plugin  
						
						... 
						
						
						
						This new plugin parses extm3u files.  Files without the "#EXTM3U"
header are still parsed by the plain old "m3u" plugin. 
						
						
					 
					
						2009-11-06 00:41:42 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						65e56ff829 
					 
					
						
						
							
							playlist/{m3u,pls}: removed URI checks  
						
						... 
						
						
						
						The caller is responsible for verifying the song URI. 
						
						
					 
					
						2009-11-06 00:36:32 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a4970c66ef 
					 
					
						
						
							
							playlist_list: rewind the stream before opening the playlist  
						
						... 
						
						
						
						If one plugin has failed to open the playlist, it may have consumed a
part of the stream already.  This may lead to a failure in all
following plugins.  Fix: rewind the stream before each open() call. 
						
						
					 
					
						2009-11-06 00:11:36 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						945287358b 
					 
					
						
						
							
							output/httpd: bind port when output is enabled  
						
						... 
						
						
						
						Implement the methods enable() and disable().  Bind the HTTP port in
the enable() method, but reject all incoming connections until the
output is opened. 
						
						
					 
					
						2009-11-05 23:47:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						979cd5a768 
					 
					
						
						
							
							output/jack: support mono input  
						
						... 
						
						
						
						When MPD plays a mono song (audio_format.channel==1), connect only one
source port to both destination ports. 
						
						
					 
					
						2009-11-05 20:02:04 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a68da8a475 
					 
					
						
						
							
							output/jack: clear ring buffers before activating  
						
						... 
						
						
						
						After playback has stopped, the ring buffers may still contain
samples.  These will be played when playback is started the next
time.  We should clear the buffers each time. 
						
						
					 
					
						2009-11-05 20:01:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2a9685cb3a 
					 
					
						
						
							
							output/jack: use jack_client_open() instead of jack_client_new()  
						
						... 
						
						
						
						jack_client_new() is deprecated.  This requires libjack 0.100
(released nearly 5 years ago).  We havn't been testing older libjack
versions anyway.
As a side effect, there is the new option "autostart". 
						
						
					 
					
						2009-11-05 20:01:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						88abfc0d0f 
					 
					
						
						
							
							output/jack: added option "client_name"  
						
						... 
						
						
						
						Instead of using MPD's audio output name (setting "name"), use a
separate configuration option.  Change the default to "Music Player
Daemon". 
						
						
					 
					
						2009-11-05 19:55:00 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4ec25b5d64 
					 
					
						
						
							
							update_walk: log unrecognized files  
						
						... 
						
						
						
						When a song's tags could not be loaded during database update, log
this as a debug message.  Same for a song being removed because its
updated tag could not be read. 
						
						
					 
					
						2009-11-05 08:01:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e96dc9a14c 
					 
					
						
						
							
							database: rescan after metadata_to_use change  
						
						... 
						
						
						
						Store a list of supported tag items in the database.  When loading a
database which does not have a matching list, we must rescan in order
to get the missing information. 
						
						
					 
					
						2009-11-04 18:48:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a434c35eb4 
					 
					
						
						
							
							tag: added function tag_name_parse()  
						
						... 
						
						
						
						Convert a string into a tag_type enum. 
						
						
					 
					
						2009-11-04 18:47:42 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7af8c88e37 
					 
					
						
						
							
							song_save: explicitly parse the colon  
						
						... 
						
						
						
						Clear the colon.  This simplifies all attribute parsers, because they
can now use strcmp() instead of strncmp(). 
						
						
					 
					
						2009-11-04 18:43:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a027bdf118 
					 
					
						
						
							
							decoder_thread: initialize decoder_control.quit  
						
						... 
						
						
						
						If left uninitialized, then the decoder thread quits spuriously. 
						
						
					 
					
						2009-11-04 09:44:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c043bf0f63 
					 
					
						
						
							
							Merge branch 'master' of git://git.musicpd.org/romain/mpd  
						
						
						
						
					 
					
						2009-11-04 09:20:13 +01:00 
						 
				 
			
				
					
						
							
							
								Romain Bignon 
							
						 
					 
					
						
						
							
						
						5744634094 
					 
					
						
						
							
							sticker comments in code and example configuration file  
						
						... 
						
						
						
						Signed-off-by: Romain Bignon <romain@peerfuse.org > 
						
						
					 
					
						2009-11-04 00:21:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a22c93b659 
					 
					
						
						
							
							player_thread: on return, reset next_song only if queued  
						
						... 
						
						
						
						If no song was queued, then player_control.next_song might contain the
value for the next QUEUE command.  We must not reset that. 
						
						
					 
					
						2009-11-03 23:32:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						507606bb78 
					 
					
						
						
							
							player_thread: detect finished queued song  
						
						... 
						
						
						
						When the decoder finishes the "queued" song very quickly (before the
"current" song finishes playing), an assertion in do_play() fails
because it thinks that it should start decoding the queued song,
although that has in fact just finished. 
						
						
					 
					
						2009-11-03 23:29:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f421c8a191 
					 
					
						
						
							
							player_control: moved pc.next_song assertion into lock  
						
						... 
						
						
						
						The assertion shouldn't access player_control.next_song without
locking it. 
						
						
					 
					
						2009-11-03 23:17:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d06f8baf69 
					 
					
						
						
							
							player_thread: moved code to decoding_next_song()  
						
						... 
						
						
						
						Simplify several expressions. 
						
						
					 
					
						2009-11-03 22:27:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						56b8081af6 
					 
					
						
						
							
							player_thread: lock player in player_check_decoder_startup()  
						
						... 
						
						
						
						Don't access attributes without the lock. 
						
						
					 
					
						2009-11-03 21:23:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						98d30ac9cf 
					 
					
						
						
							
							decoder_control: pass pipe and buffer to dc_start()  
						
						... 
						
						
						
						Don't access decoder_control attributes directly. 
						
						
					 
					
						2009-11-03 21:18:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						98150f503a 
					 
					
						
						
							
							player_thread: lock inside player_wait_for_decoder()  
						
						... 
						
						
						
						Lock the player_control object when modifying its attributes. 
						
						
					 
					
						2009-11-03 21:02:54 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6c78c21fb8 
					 
					
						
						
							
							player_thread: moved code to player_dc_start()  
						
						
						
						
					 
					
						2009-11-03 21:01:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7fd2097a44 
					 
					
						
						
							
							decoder_control: don't check command in decoder_is_starting()  
						
						... 
						
						
						
						Asynchronous decoder startup is gone, and we don't need to check
command==DECODE_COMMAND_START anymore. 
						
						
					 
					
						2009-11-03 21:01:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						89893faa19 
					 
					
						
						
							
							decoder_control: merge next_song and current_song  
						
						... 
						
						
						
						These two variables are redundant, we need only one of them. 
						
						
					 
					
						2009-11-03 20:02:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bfa7da943c 
					 
					
						
						
							
							player_thread: don't set errored_song on audio error  
						
						... 
						
						
						
						It's not used if pc.error==PLAYER_ERROR_AUDIO. 
						
						
					 
					
						2009-11-03 20:01:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						734676fcfb 
					 
					
						
						
							
							decoder_thread: unlock the decoder while checking the stream  
						
						... 
						
						
						
						This is only a slight change to the previous locking behaviour: keep
the decoder unlocked during the loop, and lock it only while checking
decoder_control.command. 
						
						
					 
					
						2009-11-03 19:21:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						acb265d082 
					 
					
						
						
							
							player_thread: don't start the decoder asynchronously  
						
						... 
						
						
						
						The START command returns without blocking; we don't need the
asynchronous decoder start anymore. 
						
						
					 
					
						2009-11-03 19:18:17 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						77a647fc26 
					 
					
						
						
							
							decoder_thread: open input stream after command finished  
						
						... 
						
						
						
						Return the result to the caller more quickly.  This unifies error
handling: no error can be reported before the command is finished. 
						
						
					 
					
						2009-11-03 19:17:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						59ffb5b7c1 
					 
					
						
						
							
							decoder_control: make the song objects const  
						
						... 
						
						
						
						They are just informational. 
						
						
					 
					
						2009-11-03 19:16:25 +01:00 
						 
				 
			
				
					
						
							
							
								Jeffrey Middleton 
							
						 
					 
					
						
						
							
						
						4dc25d3908 
					 
					
						
						
							
							alsa_plugin.c: workaround snd_pcm_drain bug  
						
						... 
						
						
						
						Reintroduce a fix from commit 52a0653 
						
						
					 
					
						2009-11-02 23:58:15 -06:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0f9f82f227 
					 
					
						
						
							
							output_thread: moved code to ao_next_chunk()  
						
						
						
						
					 
					
						2009-11-02 20:20:14 +01:00