Max Kellermann 
							
						 
					 
					
						
						
							
						
						c3d883c6cb 
					 
					
						
						
							
							win32/build.py: default to x64 build  
						
						
						
						
					 
					
						2017-02-20 21:06:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						097e30321b 
					 
					
						
						
							
							win32/build.py: add option --32  
						
						
						
						
					 
					
						2017-02-20 21:06:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b6ddeaacf2 
					 
					
						
						
							
							win32/build.py: convert argument parser to loop  
						
						... 
						
						
						
						Allow multiple arguments. 
						
						
					 
					
						2017-02-20 21:06:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b0c60ec124 
					 
					
						
						
							
							win32/build.py: add variable "x64", assign host_arch later  
						
						
						
						
					 
					
						2017-02-20 21:04:34 +01:00 
						 
				 
			
				
					
						
							
							
								François Revol 
							
						 
					 
					
						
						
							
						
						46aa4d2f91 
					 
					
						
						
							
							haiku: fix build  
						
						... 
						
						
						
						Some missing bits when converted to C++ exceptions... 
						
						
					 
					
						2017-02-20 11:25:00 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d0b4bd08e1 
					 
					
						
						
							
							doc/protocol.xml: idle "output" may indicate outputs have been added or removed  
						
						... 
						
						
						
						Preparing the protocol spec for multi-player support. 
						
						
					 
					
						2017-02-19 20:50:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						512e81c629 
					 
					
						
						
							
							output/httpd: use emplace() instead of push()  
						
						
						
						
					 
					
						2017-02-19 20:48:17 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						452666f742 
					 
					
						
						
							
							output/httpd: wake up the I/O thread only if pages have been read from encoder  
						
						
						
						
					 
					
						2017-02-19 20:46:20 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						72008d951b 
					 
					
						
						
							
							output/httpd: no mutex lock while reading data from encoder  
						
						
						
						
					 
					
						2017-02-19 20:45:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						72146e7800 
					 
					
						
						
							
							output/httpd: use std::lock_guard  
						
						
						
						
					 
					
						2017-02-19 20:43:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f7af1bb8e2 
					 
					
						
						
							
							output/httpd: cancel the DeferredMonitor in Close()  
						
						
						
						
					 
					
						2017-02-19 20:41:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f88f1fca3f 
					 
					
						
						
							
							output/httpd: move Close() lock into the I/O thread  
						
						... 
						
						
						
						Fixes a potential deadlock introduced by commit 945287358b 
						
						
					 
					
						2017-02-19 20:41:06 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						26e4a40cc7 
					 
					
						
						
							
							output/httpd/Page: use std::shared_ptr instead of class RefCount  
						
						
						
						
					 
					
						2017-02-19 20:17:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8b1931072a 
					 
					
						
						
							
							output/httpd/Page: no variable size, use AllocatedArray  
						
						... 
						
						
						
						Using variable-size objects is not worth the trouble here.  Let's drop
this and use existing and simpler code. 
						
						
					 
					
						2017-02-19 20:13:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						45e15b6cc6 
					 
					
						
						
							
							output/httpd/Page: make all attributes private  
						
						
						
						
					 
					
						2017-02-19 20:13:35 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						be7e52c882 
					 
					
						
						
							
							output/httpd/Page: remove unused method Concat()  
						
						
						
						
					 
					
						2017-02-19 20:13:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4162ce0bc5 
					 
					
						
						
							
							output/httpd/Page: use uint8_t instead of unsigned char  
						
						
						
						
					 
					
						2017-02-19 19:49:53 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7e46277016 
					 
					
						
						
							
							Merge branch 'v0.20.x'  
						
						
						
						
					 
					
						2017-02-19 19:46:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3b788703e 
					 
					
						
						
							
							tag/Handler: improve snprintf() return value check  
						
						
						
						
					 
					
						2017-02-19 19:34:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4bb83781e8 
					 
					
						
						
							
							output/httpd/IcyMetaDataServer: cast length to unsigned  
						
						... 
						
						
						
						Fixes another buffer overflow: if the stream has a very long title or
URL, resulting in a metadata string of more than 2 kB, icy_string[0]
is a negative value, which gets casted to size_t - ouch!
 https://bugs.musicpd.org/view.php?id=4652  
						
						
					 
					
						2017-02-19 19:28:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a73195b7cc 
					 
					
						
						
							
							output/httpd/IcyMetaDataServer: pad the string with 15 spaces  
						
						... 
						
						
						
						Fixes a buffer overflow due to the bad formula rounding the buffer
size up.  At the same time, remove the "+1" from the meta_length
calculation, which takes the padding into account and at the same time
implements proper rounding. 
						
						
					 
					
						2017-02-19 19:27:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1bd00b8a9a 
					 
					
						
						
							
							output/httpd/IcyMetaDataServer: remove the int cast  
						
						... 
						
						
						
						Why did this cast exist?? 
						
						
					 
					
						2017-02-19 19:27:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d84eaeafc5 
					 
					
						
						
							
							doc/include/tags.xml: clarify that track/disc are decimal  
						
						
						
						
					 
					
						2017-02-18 19:01:04 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3b84b99804 
					 
					
						
						
							
							IdleFlags: add a "partition" event  
						
						
						
						
					 
					
						2017-02-17 23:59:06 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1786f9b1bb 
					 
					
						
						
							
							command/Partition: add command "newpartition"  
						
						
						
						
					 
					
						2017-02-17 23:53:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1e972174a6 
					 
					
						
						
							
							output/MultipleOutputs: add method AddNullOutput()  
						
						
						
						
					 
					
						2017-02-17 23:53:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						77178e0590 
					 
					
						
						
							
							Instance: make "partition" a std::list  
						
						... 
						
						
						
						With this commit, multi-player support becomes possible... it's just
not wired to the frontend yet.
This is based on massive amounts of refactoring work I did over the
past 9 years. 
						
						
					 
					
						2017-02-17 23:22:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9a909d9f27 
					 
					
						
						
							
							Instance: un-inline the constructor  
						
						
						
						
					 
					
						2017-02-17 23:22:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90d25a40a0 
					 
					
						
						
							
							Instance: use C++11 initializer  
						
						
						
						
					 
					
						2017-02-17 23:21:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c335f18be7 
					 
					
						
						
							
							Partition: add "name" attribute  
						
						
						
						
					 
					
						2017-02-17 23:18:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7dc3e73782 
					 
					
						
						
							
							command: add command "listpartitions"  
						
						... 
						
						
						
						The first step to multi-player support.  Not much, just a dummy
command. 
						
						
					 
					
						2017-02-17 23:07:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						47dffe66aa 
					 
					
						
						
							
							output/alsa: fix race condition on early snd_pcm_writei() error  
						
						... 
						
						
						
						During UnlockActivate() while the mutex is unlocked, the IOThread can
set a new error condition, and will never again wake up the
OutputThread.  This race condition can cause a deadlock in the
OutputThread. 
						
						
					 
					
						2017-02-15 11:23:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6636c69a11 
					 
					
						
						
							
							storage/FileInfo: convert mtime to std::chrono::system_clock::time_point  
						
						
						
						
					 
					
						2017-02-11 23:45:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0ccaf4a1ff 
					 
					
						
						
							
							storage/FileInfo: add initializing constructor  
						
						
						
						
					 
					
						2017-02-11 23:45:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5cdbad7937 
					 
					
						
						
							
							db/simple/Directory: make parent and path const  
						
						
						
						
					 
					
						2017-02-11 23:45:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fc0508c047 
					 
					
						
						
							
							db/simple/Directory: use C++11 initializers  
						
						
						
						
					 
					
						2017-02-11 23:45:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						78ca5491e6 
					 
					
						
						
							
							db/Interface: GetUpdateStamp() returns std::chrono::system_clock::time_point  
						
						
						
						
					 
					
						2017-02-11 23:02:17 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4146475c73 
					 
					
						
						
							
							util/ChronoUtil: new utility library for std::chrono  
						
						
						
						
					 
					
						2017-02-11 22:23:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						329c3ab21b 
					 
					
						
						
							
							fs/FileInfo: use std::chrono::system_clock  
						
						
						
						
					 
					
						2017-02-10 23:48:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3b7f6641d2 
					 
					
						
						
							
							TimePrint: std::chrono::system_clock support  
						
						
						
						
					 
					
						2017-02-10 23:48:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						781487c4dd 
					 
					
						
						
							
							thread/Thread: use BoundMethod  
						
						
						
						
					 
					
						2017-02-10 22:46:09 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5ba5bc8ba1 
					 
					
						
						
							
							thread/Thread: move code to Run()  
						
						
						
						
					 
					
						2017-02-10 22:43:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						82c66ce078 
					 
					
						
						
							
							thread/Thread: Start() returns void  
						
						... 
						
						
						
						Since we switched to C++ exceptions, there is no code path which
returns false. 
						
						
					 
					
						2017-02-10 22:41:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9324fbf921 
					 
					
						
						
							
							event/Thread: remove the Mutex  
						
						... 
						
						
						
						We don't need to access Thread::handle early inside the EventThread,
so we don't need this trick anymore. 
						
						
					 
					
						2017-02-10 22:29:31 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5e081de14a 
					 
					
						
						
							
							IOThread: move EventThread instance into struct Instance  
						
						... 
						
						
						
						Eliminate global variables. 
						
						
					 
					
						2017-02-10 22:25:06 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d1456ae039 
					 
					
						
						
							
							test/*: use class EventThread instead of ScopeIOThread  
						
						
						
						
					 
					
						2017-02-10 22:25:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						115af4f565 
					 
					
						
						
							
							event/Loop: Break() is no-op if "quit" is already set  
						
						
						
						
					 
					
						2017-02-10 22:24:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						822724d1aa 
					 
					
						
						
							
							event/Thread: auto-stop in the destructor  
						
						
						
						
					 
					
						2017-02-10 22:24:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						87c9856b20 
					 
					
						
						
							
							input/alsa: use the EventLoop& passed to init() instead of io_thread_get()  
						
						
						
						
					 
					
						2017-02-10 22:24:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						835136dcd3 
					 
					
						
						
							
							output/Thread: add assertion on the ao_plugin_play() result  
						
						
						
						
					 
					
						2017-02-10 22:24:36 +01:00