Denis Krjuchkov 
							
						 
					 
					
						
						
							
						
						90ab65f8c7 
					 
					
						
						
							
							WakeFD.cxx: use two sockets instead of pipe on Win32  
						
						... 
						
						
						
						Pipes aren't really pollable on Windows.
GLib emulates polling on pipes using separate reader/writer threads.
This adds significant overhead and keeps a strong dependency on GLib.
socketpair() function is absent on Windows as well.
We implement it here in a loose way. 
						
						
					 
					
						2013-01-13 15:30:53 +06:00 
						 
				 
			
				
					
						
							
							
								Denis Krjuchkov 
							
						 
					 
					
						
						
							
						
						abb0fcb203 
					 
					
						
						
							
							Win32Main.cxx: more clean shutdown  
						
						... 
						
						
						
						This change fixes two issues:
1) console_handler is called from a separate thread.
   Thread-safe primitive is required for correct operation.
2) If console_handler returns TRUE our process is immediately terminated.
   We use Sleep() to give main thread an opportunity to shutdown correctly. 
						
						
					 
					
						2013-01-13 15:20:32 +06:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0226440a2d 
					 
					
						
						
							
							thread/{Mutex,Cond}: new backend for WIN32  
						
						... 
						
						
						
						Use CRITICAL_SECTION and CONDITION_VARIABLE.  This requires Windows
Vista or newer.  It fixes problems with GLib threading objects that
were implicitly created by static constructors before g_thread_init(). 
						
						
					 
					
						2013-01-11 11:11:07 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9d770d6084 
					 
					
						
						
							
							GlobalEvents: #undef DELETE on Windows  
						
						... 
						
						
						
						Work around a build failure due to windows.h macro. 
						
						
					 
					
						2013-01-11 11:10:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						49f3855407 
					 
					
						
						
							
							configure.ac: enable WIN32_LEAN_AND_MEAN on Windows  
						
						
						
						
					 
					
						2013-01-11 11:06:16 +01:00 
						 
				 
			
				
					
						
							
							
								Denis Krjuchkov 
							
						 
					 
					
						
						
							
						
						a98aa66620 
					 
					
						
						
							
							string_util.c: provide fallback strndup() implementation  
						
						... 
						
						
						
						This patch also adds extern "C" { } wrapper around string_util.h
to allow its usage in C++ code 
						
						
					 
					
						2013-01-11 13:51:39 +06:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						631a268996 
					 
					
						
						
							
							input/curl: use std::list instead of GQueue  
						
						
						
						
					 
					
						2013-01-10 23:00:23 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						85074f5ac6 
					 
					
						
						
							
							icy_metadata: convert to C++  
						
						
						
						
					 
					
						2013-01-10 22:33:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						12a8ed39d4 
					 
					
						
						
							
							input/Curl: add constructor to input_curl class  
						
						
						
						
					 
					
						2013-01-10 22:25:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b9ac5e9e76 
					 
					
						
						
							
							input/Curl: remove unused source/source_id attributes  
						
						
						
						
					 
					
						2013-01-10 22:25:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2758a734a2 
					 
					
						
						
							
							input/Curl: remove redundant attribute "url"  
						
						... 
						
						
						
						Use the "url" attribute from the base class instead. 
						
						
					 
					
						2013-01-10 22:21:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						01f3131c81 
					 
					
						
						
							
							input/Curl: use std::forward_list instead of GSList  
						
						
						
						
					 
					
						2013-01-10 20:52:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2ca9236864 
					 
					
						
						
							
							input/Curl: remove unused attribute "fds"  
						
						
						
						
					 
					
						2013-01-10 20:52:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3bb711837e 
					 
					
						
						
							
							input/Curl: require libcurl 7.18  
						
						
						
						
					 
					
						2013-01-10 20:46:47 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ed8798e82f 
					 
					
						
						
							
							output/shout: refactor check_block_param() to a function  
						
						... 
						
						
						
						Don't use macro magic, don't dereference the block_param. 
						
						
					 
					
						2013-01-10 18:46:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						38474961fd 
					 
					
						
						
							
							Log, ...: include cleanup  
						
						
						
						
					 
					
						2013-01-10 18:34:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3dd38e7b7f 
					 
					
						
						
							
							decoder/wavpack: convert to C++  
						
						
						
						
					 
					
						2013-01-10 18:18:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3711a97657 
					 
					
						
						
							
							decoder/wavpack: include cleanup  
						
						
						
						
					 
					
						2013-01-10 18:18:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						911411e630 
					 
					
						
						
							
							conf: convert to C++  
						
						
						
						
					 
					
						2013-01-10 18:18:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c02cc199bc 
					 
					
						
						
							
							path: move code to IsSupportedCharset()  
						
						
						
						
					 
					
						2013-01-10 18:06:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dd6c21e092 
					 
					
						
						
							
							path: make the "win_charset" buffer static  
						
						... 
						
						
						
						It is illegal to use it after going out of scope. 
						
						
					 
					
						2013-01-10 17:54:11 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b8cda53bd3 
					 
					
						
						
							
							notify: convert to C++  
						
						
						
						
					 
					
						2013-01-10 10:44:04 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e0a97a030f 
					 
					
						
						
							
							io_thread: convert to C++  
						
						
						
						
					 
					
						2013-01-10 10:33:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						33ba288622 
					 
					
						
						
							
							input/{curl,soup}: convert to C++  
						
						
						
						
					 
					
						2013-01-10 10:23:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d5516dee00 
					 
					
						
						
							
							input_stream: convert to C++ (internally)  
						
						
						
						
					 
					
						2013-01-10 10:15:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						06e0741a52 
					 
					
						
						
							
							PlayerControl: switch to the Mutex/Cond classes  
						
						
						
						
					 
					
						2013-01-10 10:12:54 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0b93445380 
					 
					
						
						
							
							thread/Cond: new wrapper for pthread_cond_t or GCond  
						
						
						
						
					 
					
						2013-01-10 10:03:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						483ba5ea1c 
					 
					
						
						
							
							thread/GLibMutex: new Mutex implementation  
						
						... 
						
						
						
						Switch WIN32 to this implementation to be able to use condition
variables, which is impossible with CriticalSection. 
						
						
					 
					
						2013-01-10 10:03:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						18076ac9b7 
					 
					
						
						
							
							PlayerThread: use pc.cond instead of main_cond  
						
						... 
						
						
						
						The main_cond variable was completely unnecessary.  The pc.cond object
can be used for both main->pc and pc->main. 
						
						
					 
					
						2013-01-10 10:01:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ad15ca7104 
					 
					
						
						
							
							DecoderControl: take ownership of client_cond  
						
						... 
						
						
						
						Don't let the "client" pass its own GCond.  This was not used
consistently. 
						
						
					 
					
						2013-01-10 10:01:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						53117ac204 
					 
					
						
						
							
							DecoderThread: signal the client after decoder finishes  
						
						... 
						
						
						
						Fixes potential dead lock bug. 
						
						
					 
					
						2013-01-10 10:00:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						51a8c109ab 
					 
					
						
						
							
							thread/PosixMutex: fix indent  
						
						
						
						
					 
					
						2013-01-10 10:00:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5c3c506638 
					 
					
						
						
							
							GlobalEvents: lock-less operation using std::atomic  
						
						... 
						
						
						
						Use a bit field instead of a mutex-protected bool array. 
						
						
					 
					
						2013-01-10 00:57:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ecd5eb02c5 
					 
					
						
						
							
							event/WakeFD: use eventfd() if available  
						
						
						
						
					 
					
						2013-01-10 00:10:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3be57dc4a3 
					 
					
						
						
							
							fd_util: support eventfd()  
						
						
						
						
					 
					
						2013-01-10 00:10:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a93caf3cfe 
					 
					
						
						
							
							GlobalEvents: move code to class WakeFD  
						
						
						
						
					 
					
						2013-01-09 23:47:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						26ebfc04b0 
					 
					
						
						
							
							EventPipe: rename to GlobalEvents  
						
						
						
						
					 
					
						2013-01-09 23:31:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8782f6d232 
					 
					
						
						
							
							EventPipe: use Mutex instead of GMutex  
						
						
						
						
					 
					
						2013-01-09 23:30:07 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5faf443038 
					 
					
						
						
							
							event_pipe.h: convert to C++  
						
						
						
						
					 
					
						2013-01-09 22:37:47 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8eacd13ce7 
					 
					
						
						
							
							sig_handlers, log: convert to C++  
						
						
						
						
					 
					
						2013-01-09 22:33:06 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d3e1b72d38 
					 
					
						
						
							
							mixer/{alsa,pulse}: convert to C++  
						
						
						
						
					 
					
						2013-01-09 22:25:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b5e1bd5705 
					 
					
						
						
							
							Playlist.hxx: move prototype to PlaylistGlobal.hxx  
						
						
						
						
					 
					
						2013-01-09 22:23:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4bef0a1e62 
					 
					
						
						
							
							Playlist: move playlist_increment_version_all() into the class  
						
						
						
						
					 
					
						2013-01-09 22:21:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3e5f09be0b 
					 
					
						
						
							
							event_pipe: convert to C++  
						
						
						
						
					 
					
						2013-01-09 13:02:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e86e77ad67 
					 
					
						
						
							
							idle: convert to C++  
						
						
						
						
					 
					
						2013-01-09 13:01:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6b4374583a 
					 
					
						
						
							
							ReplayGainCoinfig: initialize replay_gain_limit with default value  
						
						
						
						
					 
					
						2013-01-09 12:25:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f8a99a391e 
					 
					
						
						
							
							ReplayGainCoinfig: make DEFAULT_REPLAYGAIN_LIMIT static  
						
						
						
						
					 
					
						2013-01-09 08:56:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2564f763d7 
					 
					
						
						
							
							ClientList: don't use GLib  
						
						... 
						
						
						
						Use std::list instead of GList. 
						
						
					 
					
						2013-01-09 08:12:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						377a2b9e07 
					 
					
						
						
							
							ClientList: add header ClientList.hxx  
						
						
						
						
					 
					
						2013-01-09 08:08:36 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						045993001c 
					 
					
						
						
							
							zeroconf-bonjour: include Listen.hxx instead of listen.h  
						
						... 
						
						
						
						Should fix the OS X build. 
						
						
					 
					
						2013-01-09 08:07:26 +01:00