Max Kellermann 
							
						 
					 
					
						
						
							
						
						68fcc19565 
					 
					
						
						
							
							output/httpd: move queue size check to HttpdClient::PushPage()  
						
						... 
						
						
						
						Don't let the server care for client problems. 
						
						
					 
					
						2014-01-04 17:42:03 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8e4efd071e 
					 
					
						
						
							
							output/httpd: wrap the std::list in std::queue  
						
						
						
						
					 
					
						2014-01-04 17:12:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f2ad9f6fad 
					 
					
						
						
							
							output/httpd: merge duplicate code to ClearQueue()  
						
						
						
						
					 
					
						2014-01-04 17:11:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						968c5eb767 
					 
					
						
						
							
							output/httpd: keep track of queue size  
						
						... 
						
						
						
						Don't iterate the std::list each time. 
						
						
					 
					
						2014-01-04 17:06:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						19424e95db 
					 
					
						
						
							
							event/Loop: remove bogus "!quit" assertion  
						
						... 
						
						
						
						Commit 1f11959 
						
						
					 
					
						2014-01-04 17:06:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0f9ef2506f 
					 
					
						
						
							
							event/Loop: remove unused method AddCall()  
						
						
						
						
					 
					
						2014-01-04 16:00:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1f1195975f 
					 
					
						
						
							
							event/Loop: non-recursive Break() implementation  
						
						... 
						
						
						
						Simply set the "quit" flag and wake up the thread.  This works even if
we're inside this thread.  Setting "quit" to a new value without mutex
protection is usually not safe, but good enough here. 
						
						
					 
					
						2014-01-04 15:59:00 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						87fce8ef27 
					 
					
						
						
							
							mixer/alsa: use DeferredMonitor to update file descriptors  
						
						... 
						
						
						
						EventLoop::AddCall() and EventLoop::AddIdle() are unsafe, because we
can't cancel those calls. 
						
						
					 
					
						2014-01-04 15:58:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d2a4f64fd6 
					 
					
						
						
							
							event/BlockingCall: always use DeferredMonitor internally  
						
						... 
						
						
						
						There is no advantage of using EventLoop::AddCall(), now that
DeferredMonitor is thread-safe. 
						
						
					 
					
						2014-01-04 15:58:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a357d84dce 
					 
					
						
						
							
							event/DeferredMonitor: make fully thread-safe  
						
						... 
						
						
						
						Instead of creating a new eventfd for each DeferredMonitor instance,
reuse EventLoop's eventfd, and add a std::list to EventLoop that
manages the list of pending DeferredMonitors.  This std::list is
protected by the same mutex as the "calls" list.
The bottom line is: reduced overhead because the per-instance eventfd
was eliminated, slightly added overhead due to Mutex usage (but
negligible), and we're thread-safe now.
This subsystem is now good enough to replace EventLoop::AddCall(). 
						
						
					 
					
						2014-01-04 15:58:59 +01:00 
						 
				 
			
				
					
						
							
							
								James McGlashan (DarkFox) 
							
						 
					 
					
						
						
							
						
						48c96bbaea 
					 
					
						
						
							
							Added application key for soundcloud plugin  
						
						
						
						
					 
					
						2014-01-04 14:01:17 +01:00 
						 
				 
			
				
					
						
							
							
								James McGlashan (DarkFox) 
							
						 
					 
					
						
						
							
						
						c666794ce3 
					 
					
						
						
							
							Added soundcloud documentation  
						
						
						
						
					 
					
						2014-01-04 14:01:12 +01:00 
						 
				 
			
				
					
						
							
							
								James McGlashan (DarkFox) 
							
						 
					 
					
						
						
							
						
						1ee3df6976 
					 
					
						
						
							
							Added user and search paramaters for SoundCloud plugin  
						
						
						
						
					 
					
						2014-01-04 13:36:24 +01:00 
						 
				 
			
				
					
						
							
							
								James McGlashan (DarkFox) 
							
						 
					 
					
						
						
							
						
						d4dea53ae9 
					 
					
						
						
							
							http -> https for SoundCloud plugin  
						
						
						
						
					 
					
						2014-01-02 12:29:45 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d477a9222e 
					 
					
						
						
							
							output/httpd: change "struct" to "class"  
						
						
						
						
					 
					
						2013-12-31 17:04:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						69a9d29190 
					 
					
						
						
							
							output/httpd: move code to methods Delay(), Play(), Cancel()  
						
						
						
						
					 
					
						2013-12-31 17:01:08 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e2425592b6 
					 
					
						
						
							
							output/httpd: move Cast() into the class  
						
						
						
						
					 
					
						2013-12-31 16:59:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						964b2661d8 
					 
					
						
						
							
							output/httpd: add methods Init(), Finish()  
						
						
						
						
					 
					
						2013-12-31 16:55:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8b65b524d5 
					 
					
						
						
							
							output/httpd: use reference instead of pointer  
						
						
						
						
					 
					
						2013-12-31 16:32:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f1ac2cd336 
					 
					
						
						
							
							output/httpd: make the HttpdClient base class "private"  
						
						
						
						
					 
					
						2013-12-31 16:24:51 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e73d0df2b6 
					 
					
						
						
							
							event/*Monitor: document as not being thread-safe  
						
						
						
						
					 
					
						2013-12-31 15:59:41 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						af3f483924 
					 
					
						
						
							
							event/Loop: document that AddCall() is thread-safe  
						
						
						
						
					 
					
						2013-12-31 15:31:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						809b0eb1f5 
					 
					
						
						
							
							command: "lsinfo" and "readcomments" allowed for remote files  
						
						
						
						
					 
					
						2013-12-29 18:25:32 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b5f3bfce92 
					 
					
						
						
							
							SongUpdate: read tags from songs in an archive  
						
						... 
						
						
						
						Add the TagStream.cxx library, similar to TagFile.cxx, and use it to
load tags from song files inside archives. 
						
						
					 
					
						2013-12-29 18:15:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aeb2baa495 
					 
					
						
						
							
							InputStream: add static method OpenReady()  
						
						... 
						
						
						
						Merge some duplicate code. 
						
						
					 
					
						2013-12-29 18:08:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ea9aff1d3f 
					 
					
						
						
							
							TagFile: rewind the stream before trying the next plugin  
						
						... 
						
						
						
						Got lost in commit c97685fe 
						
						
					 
					
						2013-12-29 17:09:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cecae419fb 
					 
					
						
						
							
							DecoderList: add "pure" attribute  
						
						
						
						
					 
					
						2013-12-29 17:06:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						df4db50904 
					 
					
						
						
							
							DecoderList: add function decoder_plugins_supports_suffix()  
						
						... 
						
						
						
						Replaces decoder_plugin_from_suffix(). 
						
						
					 
					
						2013-12-29 16:59:57 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						decc4002a0 
					 
					
						
						
							
							DecoderThread: use decoder_plugins_try()  
						
						... 
						
						
						
						.. instead of decoder_plugin_from_suffix().  This reduces overhead by
walking the array only once. 
						
						
					 
					
						2013-12-29 16:51:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5bb563e3bc 
					 
					
						
						
							
							UpdateContainer: pass suffix instead of DecoderPlugin  
						
						... 
						
						
						
						Instead of using the first DecoderPlugin that supports the suffix, use
the first one that actually implements the "container_scan" method. 
						
						
					 
					
						2013-12-29 16:46:02 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9be82891b0 
					 
					
						
						
							
							TagFile: pass reference instead of pointer  
						
						
						
						
					 
					
						2013-12-29 16:24:04 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c97685fe6c 
					 
					
						
						
							
							TagFile: use decoder_plugins_try()  
						
						... 
						
						
						
						.. instead of decoder_plugin_from_suffix().  This reduces overhead by
walking the array only once. 
						
						
					 
					
						2013-12-29 16:13:11 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						358b671033 
					 
					
						
						
							
							DecoderList: remove unused function decoder_plugin_from_mime_type()  
						
						
						
						
					 
					
						2013-12-29 15:53:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						92a4bf4441 
					 
					
						
						
							
							Merge branch 'v0.18.x'  
						
						
						
						
					 
					
						2013-12-29 14:18:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d7f80eab68 
					 
					
						
						
							
							configure.ac: improved check for libyajl 1.0  
						
						... 
						
						
						
						If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac
would assume this is the libyajl 1.0 API, because the function
yajl_alloc() exists in both.  This commit changes the library check to
the function yajl_parse_complete() which was removed in the 2.0 API.
This fixes build failure with libyajl 2.0.1. 
						
						
					 
					
						2013-12-29 14:12:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e30b356eb0 
					 
					
						
						
							
							daemon: no initgroups() when already running as the configured user  
						
						... 
						
						
						
						We can assume that initgroups() would be a no-op in that case, however
initgroups() is not allowed for unprivileged users anyway. 
						
						
					 
					
						2013-12-29 13:59:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						09a0803116 
					 
					
						
						
							
							Daemon: fix typo in comment  
						
						
						
						
					 
					
						2013-12-29 13:59:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						20ffedc745 
					 
					
						
						
							
							Daemon: simplify nested "if"  
						
						
						
						
					 
					
						2013-12-29 13:57:12 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0b1ad27ba8 
					 
					
						
						
							
							Daemon: fix typo in cast  
						
						
						
						
					 
					
						2013-12-29 13:47:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6a1b2f0387 
					 
					
						
						
							
							configure.ac: prepare for 0.18.7  
						
						
						
						
					 
					
						2013-12-29 10:40:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5465647c2e 
					 
					
						
						
							
							input/smbclient: new input plugin  
						
						
						
						
					 
					
						2013-12-29 01:25:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a2baeed329 
					 
					
						
						
							
							ls: add "pure" attribute  
						
						
						
						
					 
					
						2013-12-29 01:25:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						92aa464edb 
					 
					
						
						
							
							pcm/Volume: remove unused function pcm_volume_dither()  
						
						
						
						
					 
					
						2013-12-28 18:39:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						da29298d4d 
					 
					
						
						
							
							pcm/PcmMix: improved dithering  
						
						... 
						
						
						
						Use the existing PcmDither library. 
						
						
					 
					
						2013-12-28 18:30:27 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						afcf0795c4 
					 
					
						
						
							
							pcm/Volume: improved dithering  
						
						... 
						
						
						
						Instead of just adding a rectangular random value before shifting back
to the normal scale, use the existing PcmDither library. 
						
						
					 
					
						2013-12-28 18:30:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						394e2815db 
					 
					
						
						
							
							pcm/PcmDither: inline Dither24To16() and Dither32To16()  
						
						
						
						
					 
					
						2013-12-28 18:30:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3bbe4bb1f 
					 
					
						
						
							
							pcm/Volume: remove optimized i386 assembly  
						
						... 
						
						
						
						This code is unable to dither.  Until we implement that, let's remove
the code for now.  i386 isn't relevant anymore anyway. 
						
						
					 
					
						2013-12-28 17:24:54 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2a3a18a283 
					 
					
						
						
							
							pcm/Traits: use 32 bit integer for S8 long_type  
						
						... 
						
						
						
						16 bit is not enough for volume calculations. 
						
						
					 
					
						2013-12-25 12:28:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						431c80f4f0 
					 
					
						
						
							
							pcm/Dither: add API documentation  
						
						
						
						
					 
					
						2013-12-24 23:45:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9ac18c39a1 
					 
					
						
						
							
							pcm/Dither: move shift from DitherConvert() to Dither()  
						
						... 
						
						
						
						All callers need this shift, so let's move it to the basic method. 
						
						
					 
					
						2013-12-24 23:39:29 +01:00