Max Kellermann 
							
						 
					 
					
						
						
							
						
						1d02318d21 
					 
					
						
						
							
							player_thread: emit PLAYLIST event when new song fails  
						
						... 
						
						
						
						Break from the loop instead of returning the function.  This calls
player_stop_decoder(), which in turn emits the PLAYLIST event.  This
allows the playlist to re-start the player. 
						
						
					 
					
						2009-01-21 16:44:32 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a088d9f851 
					 
					
						
						
							
							player_thread: check for decoder failure before seeking  
						
						... 
						
						
						
						The function player_seek_decoder() starts the decoder, but does not
check the return value of player_wait_for_decoder(). 
						
						
					 
					
						2009-01-21 16:36:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						38a9ad011a 
					 
					
						
						
							
							player_thread: use bool instead of int  
						
						... 
						
						
						
						Make player_wait_for_decoder() and play_chunk() return a bool instead
of 0/-1. 
						
						
					 
					
						2009-01-21 16:31:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5541015ac6 
					 
					
						
						
							
							command: don't restart player in the "status" command  
						
						... 
						
						
						
						Don't attempt to restart the player if it was stopped, but there were
still songs left on the playlist.  This looks like it has been a
workaround for a bug which has been fixed long time ago. 
						
						
					 
					
						2009-01-21 16:17:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						699b31178d 
					 
					
						
						
							
							playlist: use the "enum player_error" type  
						
						... 
						
						
						
						Don't assign the result of getPlayerError() to an integer. 
						
						
					 
					
						2009-01-21 16:17:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6fd8c28d2e 
					 
					
						
						
							
							playlist: free memory with g_free()  
						
						... 
						
						
						
						Use g_free() consistently with g_malloc().  Don't clear the pointers
after freeing them. 
						
						
					 
					
						2009-01-21 16:17:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b14e48f930 
					 
					
						
						
							
							player_thread: request next song only if new one starts playing  
						
						... 
						
						
						
						The player_thread loop requests the next song from the playlist as
soon as the decoder finishes the song which is currently being played.
This is superfluous, and can lead to synchronization errors and wrong
results.  The playlist already knows when the player starts playing
the next song (player_wait_for_decoder() triggers the PLAYLIST event),
and will then trigger the scheduler to provide the next song. 
						
						
					 
					
						2009-01-21 16:17:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2362ee4a48 
					 
					
						
						
							
							use config_get_positive() instead of manual parsing  
						
						... 
						
						
						
						Simplify some code by using config_get_positive(), instead of doing
manual parsing and validation each time. 
						
						
					 
					
						2009-01-21 08:48:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f11eb14c8a 
					 
					
						
						
							
							conf: added config_get_positive()  
						
						... 
						
						
						
						This convenience function parses a configuration value into a positive
integer.  It aborts if parsing fails. 
						
						
					 
					
						2009-01-21 08:46:59 +01:00 
						 
				 
			
				
					
						
							
							
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						17222e9561 
					 
					
						
						
							
							archiveapi: adding seeking support in zip archives  
						
						
						
						
					 
					
						2009-01-21 06:44:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1379db379d 
					 
					
						
						
							
							player_thread: eliminated duplicate PLAYLIST event  
						
						... 
						
						
						
						player_wait_for_decoder() emits the PLAYLIST event on success, remove
the duplicate PLAYLIST event in its caller. 
						
						
					 
					
						2009-01-20 23:11:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						06bd9ad88f 
					 
					
						
						
							
							event_pipe: added "TAG" event  
						
						... 
						
						
						
						The "TAG" event is emitted by the player thread when the current
song's tag has changed.  Split this event from "PLAYLIST" and make it
a separate callback, which is more efficient. 
						
						
					 
					
						2009-01-20 22:49:19 +01:00 
						 
				 
			
				
					
						
							
							
								Qball Cow 
							
						 
					 
					
						
						
							
						
						d10910cc90 
					 
					
						
						
							
							Add space after sticker: to make it consistent.  
						
						
						
						
					 
					
						2009-01-20 13:55:21 +01:00 
						 
				 
			
				
					
						
							
							
								Rasmus Steinke 
							
						 
					 
					
						
						
							
						
						dc7d70ee26 
					 
					
						
						
							
							sticker: added guidelines for sticker names  
						
						
						
						
					 
					
						2009-01-19 19:13:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f9c693e602 
					 
					
						
						
							
							command: added "sticker" command  
						
						... 
						
						
						
						The "sticker" command allows clients to query or manipulate the
sticker database.  This patch implements the sub-commands "get" and
"set"; more will follow soon (enumeration), as well as extended
"lsinfo" / "playlistinfo" versions. 
						
						
					 
					
						2009-01-19 19:09:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2934585d5a 
					 
					
						
						
							
							update: delete stickers of deleted songs  
						
						... 
						
						
						
						When a song is deleted from the database, remove its sticker, too.
What's still missing is some sort of garbage collector after a fresh
database create (--create-db). 
						
						
					 
					
						2009-01-19 19:01:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						638f95aa15 
					 
					
						
						
							
							sticker: added song sticker library  
						
						... 
						
						
						
						This is a wrapper for the backend sticker library.  It provides
several glue functions which take a song object instead of type/uri. 
						
						
					 
					
						2009-01-19 18:54:04 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						145ab84d51 
					 
					
						
						
							
							sticker: new library for storing dynamic information about songs  
						
						... 
						
						
						
						"Stickers" are pieces of information attached to existing MPD objects
(e.g. song files, directories, albums).  Clients can create arbitrary
name/value pairs.  MPD itself does not assume any special meaning in
them. 
						
						
					 
					
						2009-01-19 18:51:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fbed96dcea 
					 
					
						
						
							
							flac: include config.h  
						
						... 
						
						
						
						The plugin queries build-time configuration variables, and should
include config.h. 
						
						
					 
					
						2009-01-19 09:54:47 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						33e44fbde8 
					 
					
						
						
							
							output: don't include conf.h from output_control.h  
						
						... 
						
						
						
						Minimize header dependencies. 
						
						
					 
					
						2009-01-18 19:48:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						65f2386b39 
					 
					
						
						
							
							conf: added config_get_block_unsigned()  
						
						... 
						
						
						
						Eliminate some more getBlockParam() invocations. 
						
						
					 
					
						2009-01-18 19:45:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a531a1e650 
					 
					
						
						
							
							conf: added config_get_block_string()  
						
						... 
						
						
						
						This replaces lots of getBlockParam() invocations. 
						
						
					 
					
						2009-01-18 19:37:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						73e466cfef 
					 
					
						
						
							
							jack: parse "ports" setting with g_strsplit()  
						
						... 
						
						
						
						Don't modify the configured string. 
						
						
					 
					
						2009-01-18 19:24:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						86f6233f46 
					 
					
						
						
							
							jack: use audio_output_get_name()  
						
						... 
						
						
						
						Determine the audio output name with audio_output_get_name() instead
of obtaining the name from the configuration again. 
						
						
					 
					
						2009-01-18 19:17:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						70c6cc33f0 
					 
					
						
						
							
							conf: removed parseConfigFilePath()  
						
						... 
						
						
						
						Use config_get_path() instead in mapper.c. 
						
						
					 
					
						2009-01-18 18:59:10 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a0603d8897 
					 
					
						
						
							
							mixer: don't check for NULL before g_free()  
						
						... 
						
						
						
						The g_free() function includes a NULL check.  We don't have to do it
twice. 
						
						
					 
					
						2009-01-18 18:55:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5ba43e4ac2 
					 
					
						
						
							
							daemon: removed unused variable "userpwd"  
						
						... 
						
						
						
						This causes a segmentation fault... 
						
						
					 
					
						2009-01-18 18:42:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9c93249412 
					 
					
						
						
							
							daemon: pass "detach" flag to daemonize()  
						
						... 
						
						
						
						This way, we don't have to pass the full "Options" object to
daemonize(). 
						
						
					 
					
						2009-01-18 18:29:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bfcaecabbd 
					 
					
						
						
							
							daemon: added daemonize_init(), daemonize_finish()  
						
						... 
						
						
						
						The constructor/destructor functions parse and free the configuration
properly.  This way, we don't have to load the pid file path more than
once. 
						
						
					 
					
						2009-01-18 18:29:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0dd2dfff9d 
					 
					
						
						
							
							main: moved the save_state timer to state_file.c  
						
						... 
						
						
						
						The state_file library should manage its own regular saves. 
						
						
					 
					
						2009-01-18 18:10:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						84de45afba 
					 
					
						
						
							
							state_file: added state_file_init() and state_file_finish()  
						
						... 
						
						
						
						The constructor/destructor interface should hide the functions
read_state_file() and write_state_file(). 
						
						
					 
					
						2009-01-18 18:09:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1482b22351 
					 
					
						
						
							
							state_file: include cleanup  
						
						
						
						
					 
					
						2009-01-18 17:54:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9c6b2a32f5 
					 
					
						
						
							
							conf: added config_get_path()  
						
						... 
						
						
						
						config_get_path() is an simpler interface than parseConfigFilePath(). 
						
						
					 
					
						2009-01-18 17:54:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a3f03f3ccd 
					 
					
						
						
							
							removed playerData.c  
						
						... 
						
						
						
						Fetch the configuration variables buffered_chunks and
buffered_before_play just when they are needed. 
						
						
					 
					
						2009-01-18 17:32:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90b34f8e6f 
					 
					
						
						
							
							main: moved code to daemon.c  
						
						... 
						
						
						
						Moved changeToUser(), cleanUpPidFile(), killFromPidFile() to
daemon.c.  These are daemonization functions. 
						
						
					 
					
						2009-01-18 17:15:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1f0dfb4407 
					 
					
						
						
							
							mapper: make the music_directory optional  
						
						... 
						
						
						
						Without a music_directory, MPD is an excellent streaming client. 
						
						
					 
					
						2009-01-18 16:56:07 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9933144de7 
					 
					
						
						
							
							mapper: make the playlist directory optional  
						
						
						
						
					 
					
						2009-01-18 16:15:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c2cc3b4923 
					 
					
						
						
							
							database: pass database file name to db_init()  
						
						... 
						
						
						
						Don't include conf.h in database.c. 
						
						
					 
					
						2009-01-18 16:09:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						004dfddca3 
					 
					
						
						
							
							stats: use GTimer instead of time(NULL)  
						
						... 
						
						
						
						time(NULL) shows the wrong results when the machine's clock is
changed. 
						
						
					 
					
						2009-01-18 15:40:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						14ca99b224 
					 
					
						
						
							
							stats: use one db_walk() to obtain stats  
						
						... 
						
						
						
						Don't use dbUtils.h functions.  This reduces 4 full database walks to
just one. 
						
						
					 
					
						2009-01-18 15:40:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						91fb2a29de 
					 
					
						
						
							
							stats: added num_artists, num_albums  
						
						... 
						
						
						
						Don't recalculate the number of artists and albums each time a client
requests statistics.  Calculate that once in stats_update(). 
						
						
					 
					
						2009-01-18 15:40:28 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0d449d8df7 
					 
					
						
						
							
							stats: no CamelCase  
						
						... 
						
						
						
						Renamed functions and types. 
						
						
					 
					
						2009-01-18 15:22:26 +01:00 
						 
				 
			
				
					
						
							
							
								Avuton Olrich 
							
						 
					 
					
						
						
							
						
						e8c148ab02 
					 
					
						
						
							
							mpd version 0.14.1  
						
						
						
						
					 
					
						2009-01-18 14:08:42 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0b29a22c08 
					 
					
						
						
							
							conf: replaced getConfigParamValue() with config_get_string()  
						
						... 
						
						
						
						Don't return a writable pointer. 
						
						
					 
					
						2009-01-17 20:23:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7acc62366c 
					 
					
						
						
							
							conf: replaced getBoolBlockParam() with config_get_block_bool()  
						
						... 
						
						
						
						No "force" parameter, pass a default value instead. 
						
						
					 
					
						2009-01-17 20:23:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a1a97cc048 
					 
					
						
						
							
							conf: use config_get_bool() instead of getBoolConfigParam()  
						
						
						
						
					 
					
						2009-01-17 20:23:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4d472c265e 
					 
					
						
						
							
							conf: no CamelCase, part I  
						
						... 
						
						
						
						Renamed functions, types, variables. 
						
						
					 
					
						2009-01-17 20:23:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2bbf378dd8 
					 
					
						
						
							
							song: skip archive check for non-musicdir files  
						
						... 
						
						
						
						If a song is not within the music directory ("file:///..."), it has no
"parent directory".  The archive code nonetheless dereferences the
parent pointer, causing a segmentation fault.  Check parent!=NULL. 
						
						
					 
					
						2009-01-17 19:56:36 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7f3be96efa 
					 
					
						
						
							
							decoder_api: always notify_wait() for free chunks  
						
						... 
						
						
						
						One of the previous patches made MPD consume 100% CPU in a busy wait:
when the music_pipe was full, it did not wait (with notify_wait()) for
free chunks, because a variable has a different meaning now.  Always
pass "true" as the "wait" parameter. 
						
						
					 
					
						2009-01-17 15:23:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5395f5f6b3 
					 
					
						
						
							
							moved fallback APE/ID3 tag loader to song.c  
						
						... 
						
						
						
						Some plugins used the APE or ID3 tag loader as a fallback when their
own methods of loading tags did not work.  Move this code out of all
decoder plugins, into song_file_update(). 
						
						
					 
					
						2009-01-17 13:23:42 +01:00