Max Kellermann 
							
						 
					 
					
						
						
							
						
						4b6d17a670 
					 
					
						
						
							
							database: use GLib instead of utils.h  
						
						 
						
						
						
						
					 
					
						2009-01-02 17:22:54 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9e46c32004 
					 
					
						
						
							
							playlist: use GLib instead of utils.h  
						
						 
						
						
						
						
					 
					
						2009-01-02 17:22:47 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cc4e0a786d 
					 
					
						
						
							
							directory: use GLib instead of utils.h  
						
						 
						
						
						
						
					 
					
						2009-01-02 16:26:19 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8cf9138541 
					 
					
						
						
							
							locate: use GLib instead of utils.h  
						
						 
						
						
						
						
					 
					
						2009-01-02 16:24:16 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e5b8a3b86d 
					 
					
						
						
							
							archive: use GLib instead of utils.h  
						
						 
						
						
						
						
					 
					
						2009-01-02 16:22:40 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cf9bd42416 
					 
					
						
						
							
							main: include main.h, fix dependencies  
						
						 
						
						
						
						
					 
					
						2009-01-02 11:21:33 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						272ee5f7d2 
					 
					
						
						
							
							event_pipe: replaced PIPE_EVENT_SIGNAL with main_notify  
						
						 
						
						... 
						
						
						
						There is only one location using PIPE_EVENT_SIGNAL: to synchronize
player_command() with player_command_finished().  Use the "notify"
library instead of the event_pipe here. 
						
						
					 
					
						2009-01-02 11:20:41 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						daf7c3db5a 
					 
					
						
						
							
							mapper: allocate the result of map_directory_child_fs(), map_song_fs()  
						
						 
						
						... 
						
						
						
						Don't use fixed stack buffers. 
						
						
					 
					
						2009-01-02 10:48:55 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						72255d580e 
					 
					
						
						
							
							mapper: allocate the result of map_uri_fs(), map_directory_fs()  
						
						 
						
						... 
						
						
						
						Don't use fixed stack buffers. 
						
						
					 
					
						2009-01-02 10:48:11 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b2e3b64483 
					 
					
						
						
							
							update: use g_file_test() instead of stat()  
						
						 
						
						... 
						
						
						
						If we want to check whether a file is a directory, use GLib's
g_file_test() instead of stat(). 
						
						
					 
					
						2009-01-02 10:47:31 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						38e3220fd4 
					 
					
						
						
							
							oggflac: don't use gcc.h  
						
						 
						
						... 
						
						
						
						Use G_GNUC_UNUSED instead of mpd_unused (which has already been
removed). 
						
						
					 
					
						2009-01-02 09:50:12 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0c422838a8 
					 
					
						
						
							
							playlist: use g_file_test() instead of stat()  
						
						 
						
						... 
						
						
						
						To find out whether a file exists, use g_file_test() instead of
stat(), because it is more portable and easier to use. 
						
						
					 
					
						2009-01-01 19:22:07 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						80fa9183e4 
					 
					
						
						
							
							mapper: allocate playlist path from heap  
						
						 
						
						... 
						
						
						
						Don't pass a static buffer to map_spl_utf8_to_fs(). 
						
						
					 
					
						2009-01-01 19:17:44 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						886ed1b225 
					 
					
						
						
							
							mapper: fall back to XDG music directory  
						
						 
						
						... 
						
						
						
						If no music_directory is configured, fall back to the XDG music
directory, determined by
g_get_user_special_dir(G_USER_DIRECTORY_MUSIC). 
						
						
					 
					
						2009-01-01 19:07:38 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						46aedbae09 
					 
					
						
						
							
							removed the signal_check libraries  
						
						 
						
						... 
						
						
						
						Nobody is using the signal_check library anymore.
This patch also removes the SIGUSR1 handler. 
						
						
					 
					
						2009-01-01 18:51:38 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2f71b647f4 
					 
					
						
						
							
							sig_handlers: use event_pipe for delivering SIGHUP  
						
						 
						
						... 
						
						
						
						The signal_check library went out of order when we started using the
GLib main loop.  Convert the SIGHUP handler to use event_pipe instead. 
						
						
					 
					
						2009-01-01 18:51:17 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e93136ef0f 
					 
					
						
						
							
							event_pipe: added event_pipe_emit_fast()  
						
						 
						
						... 
						
						
						
						event_pipe_emit_fast() is aimed for use in signal handlers: it doesn't
lock the mutex, and doesn't log on error.  That makes it potentially
lossy, but for its intended use, that does not matter. 
						
						
					 
					
						2009-01-01 18:47:25 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ecb20c5f7e 
					 
					
						
						
							
							mixer: renamed mix_* options to mixer_*  
						
						 
						
						... 
						
						
						
						There is no reason to use the shortcut "mix" instead of "mixer". 
						
						
					 
					
						2009-01-01 18:36:47 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						65f037eb32 
					 
					
						
						
							
							cmdline: exit after --version  
						
						 
						
						... 
						
						
						
						Don't start the daemon when MPD is called with "--version". 
						
						
					 
					
						2009-01-01 18:26:59 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b3e2635ac1 
					 
					
						
						
							
							event_pipe: added pipe_event enum and callbacks  
						
						 
						
						... 
						
						
						
						Make the event_pipe (formerly main_notify) send/receive a set of
events, with a callback for each one.
The default event PIPE_EVENT_SIGNAL does not have a callback.  It
is still there for waking up the main thread, when it is waiting for
the player thread. 
						
						
					 
					
						2009-01-01 18:22:11 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						22bb5a5856 
					 
					
						
						
							
							event_pipe: renamed functions from main_notify_* to event_pipe_*  
						
						 
						
						... 
						
						
						
						Continuing the previous patch. 
						
						
					 
					
						2009-01-01 18:12:14 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9f5934d95b 
					 
					
						
						
							
							main_notify: renamed source to event_pipe.c  
						
						 
						
						... 
						
						
						
						We are going to migrate away from the concept of notifying the main
thread.  There should be events sent to it instead.  This patch starts
a series to implement that. 
						
						
					 
					
						2009-01-01 18:12:00 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						99f8dc0168 
					 
					
						
						
							
							gcc.h: removed all duplicate macros  
						
						 
						
						... 
						
						
						
						Removed all macros which are already provided by GLib. 
						
						
					 
					
						2009-01-01 18:09:28 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						17bdcc8bae 
					 
					
						
						
							
							decoder plugins: don't include gcc.h  
						
						 
						
						... 
						
						
						
						Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused. 
						
						
					 
					
						2009-01-01 18:09:24 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7dfe301b54 
					 
					
						
						
							
							output plugins: don't include gcc.h  
						
						 
						
						... 
						
						
						
						Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused. 
						
						
					 
					
						2009-01-01 18:08:29 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0734acf392 
					 
					
						
						
							
							null: don't include gcc.h  
						
						 
						
						... 
						
						
						
						Use GLib's G_GNUC_UNUSED instead of macros from gcc.h. 
						
						
					 
					
						2009-01-01 18:00:46 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						9a70c4d06d 
					 
					
						
						
							
							Moving mixers to audio outputs  
						
						 
						
						
						
						
					 
					
						2008-12-31 16:46:41 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Viliam Mateicka 
							
						 
					 
					
						
						
							
						
						dd9af72a74 
					 
					
						
						
							
							exporting functions  
						
						 
						
						
						
						
					 
					
						2008-12-31 15:10:53 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3cd0b90ff6 
					 
					
						
						
							
							client: run client_manager_expire() in an idle event  
						
						 
						
						... 
						
						
						
						With the GLib main loop, the client manager can install its own event
in case a client is expired.  No need for main.c to call
client_manager_expire() manually. 
						
						
					 
					
						2008-12-31 14:30:03 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Laszlo Ashin 
							
						 
					 
					
						
						
							
						
						a12b57e1e9 
					 
					
						
						
							
							ls.c: include config.h to have HAVE_CURL here  
						
						 
						
						
						
						
					 
					
						2008-12-31 13:00:33 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dd0f8e42f3 
					 
					
						
						
							
							main_notify: removed lock()/unlock()  
						
						 
						
						... 
						
						
						
						These functions are not used anymore since we use the GLib main loop. 
						
						
					 
					
						2008-12-31 00:32:56 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2cdfd93830 
					 
					
						
						
							
							client: remember GLib source id  
						
						 
						
						... 
						
						
						
						Remove the event source from the GMainLoop object in
client_set_expired(). 
						
						
					 
					
						2008-12-31 00:29:27 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d196ffdf3a 
					 
					
						
						
							
							sig_handlers: call g_main_loop_quit() in SIGTERM handler  
						
						 
						
						... 
						
						
						
						We don't need to use asynchronous events to quit MPD, we can just call
g_main_loop_quit() inside the handler. 
						
						
					 
					
						2008-12-30 19:50:38 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d40cf1652d 
					 
					
						
						
							
							main: export the main_loop variable  
						
						 
						
						... 
						
						
						
						Other libraries may need to access the main_loop reference, to add or
remove events, or to call g_main_loop_quit(). 
						
						
					 
					
						2008-12-30 19:50:22 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a3b0506cfd 
					 
					
						
						
							
							sig_handlers: removed SIGCHLD  
						
						 
						
						... 
						
						
						
						We have no child processes anymore.  Remove the SIGCHLD handler. 
						
						
					 
					
						2008-12-30 19:35:01 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f38aaa2bb7 
					 
					
						
						
							
							sig_handlers: don't reload database on SIGHUP  
						
						 
						
						... 
						
						
						
						The SIGHUP handler was used by the update process to make the main
process re-read the database.  We don't need this anymore, since the
update takes place in a thread now. 
						
						
					 
					
						2008-12-30 19:34:05 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a1434914a7 
					 
					
						
						
							
							sig_handlers: removed unused functions  
						
						 
						
						... 
						
						
						
						Most of these functions were obsoleted when we switched to threaded
MPD. 
						
						
					 
					
						2008-12-30 19:32:12 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						71e7ce5d8e 
					 
					
						
						
							
							main: use the GLib main loop  
						
						 
						
						... 
						
						
						
						This is a rather huge patch, which unfortunately cannot be splitted.
Instead of using our custom ioops.h library, convert everything to use
the GLib main loop. 
						
						
					 
					
						2008-12-30 19:24:39 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						03e650aa9e 
					 
					
						
						
							
							main_notify: make the read side of the pipe blocking  
						
						 
						
						... 
						
						
						
						Currently, both sides of the pipe are blocking, although we do not
need blocking read().  Convert it back to blocking.  Eliminate the
select() from wait_main_task(). 
						
						
					 
					
						2008-12-30 19:20:36 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						10b5966bf6 
					 
					
						
						
							
							main_notify: removed notify object, use only pipe  
						
						 
						
						... 
						
						
						
						To wake up the main thread, don't attempt to use a GCond/GMutex
(struct notify).  This kind of mixed wakeup method has known race
conditions.
The idea behind this patch is: for wakeups which happen while the main
thread is sleeping, use only a pipe.  For wakeups which happen while
the main thread is waiting for the player thread, we can later change
to GCond.  For now, accept the overhead of using a pipe for the
latter.
In the long run, the main thread will never wait for the player
thread, but will do everything asynchronously. 
						
						
					 
					
						2008-12-30 19:20:20 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1f0804bdca 
					 
					
						
						
							
							listen: don't make the server socket non-blocking  
						
						 
						
						... 
						
						
						
						There is no point in making the server socket non-blocking.  We call
accept() only after select() has notified us about a new connection. 
						
						
					 
					
						2008-12-30 19:18:59 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6890183c50 
					 
					
						
						
							
							utils: port set_nonblocking() to WIN32  
						
						 
						
						... 
						
						
						
						The new WIN32 version of set_nonblocking() can only deal with sockets,
i.e. it will fail on main_notify.c.  On WIN32, we have to reimplement
main_notify.c anyway, so this is not a big deal. 
						
						
					 
					
						2008-12-30 19:17:20 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bb55ec6b4e 
					 
					
						
						
							
							command: don't allow adding local files on WIN32  
						
						 
						
						... 
						
						
						
						There are no unix sockets on WIN32, and therefore no authentication.
WIN32 might have similar capabilities, but until we implement them,
disable that MPD feature. 
						
						
					 
					
						2008-12-30 19:14:13 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7330002960 
					 
					
						
						
							
							utils: implement my_usleep() with Sleep() on WIN32  
						
						 
						
						... 
						
						
						
						Sleep() has only millisecond granularity, but good enough for now. 
						
						
					 
					
						2008-12-30 19:10:08 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2eaeb65666 
					 
					
						
						
							
							listen: include winsock headers on WIN32  
						
						 
						
						... 
						
						
						
						On Windows, socket declarations reside in winsock.h and ws2tcpip.h.
The POSIX headers are not available. 
						
						
					 
					
						2008-12-30 19:07:10 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e888af98a2 
					 
					
						
						
							
							bonjour: fixed "unused parameter" warnings  
						
						 
						
						... 
						
						
						
						Add G_GNUC_UNUSED attributes. 
						
						
					 
					
						2008-12-30 16:45:49 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						13867a1e7c 
					 
					
						
						
							
							zeroconf: eliminated strlen() usage from initZeroconf()  
						
						 
						
						... 
						
						
						
						To test if a string is empty, we can just see if the first byte is 0.
No need to include string.h for strlen() here. 
						
						
					 
					
						2008-12-30 16:45:43 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						49fa9708d5 
					 
					
						
						
							
							zeroconf: moved code to zeroconf-avahi.c and zeroconf-bonjour.c  
						
						 
						
						... 
						
						
						
						Moved implementation specific code to their own sources, internal
declarations in zeroconf-internal.h. 
						
						
					 
					
						2008-12-30 16:43:58 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bbed35822e 
					 
					
						
						
							
							zeroconf: fail if avahi service name is invalid  
						
						 
						
						... 
						
						
						
						If the configured avahi service name is invalid, abort MPD.  Don't
fall back to the default service name. 
						
						
					 
					
						2008-12-30 16:43:58 +01:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e9a3c4ce32 
					 
					
						
						
							
							playlist: use GLib's random number generator  
						
						 
						
						... 
						
						
						
						srandom() and random() are not portable.  Use GLib's implementation. 
						
						
					 
					
						2008-12-30 16:34:32 +01:00