Max Kellermann 
							
						 
					 
					
						
						
							
						
						54d295c247 
					 
					
						
						
							
							MusicChunkPtr: managed MusicChunk pointer  
						
						... 
						
						
						
						Make all uses of MusicChunk safe. 
						
						
					 
					
						2018-06-22 23:11:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e81b089612 
					 
					
						
						
							
							MusicPipe: automatically clear in destructor  
						
						... 
						
						
						
						We can implement this now that we have a MusicBuffer reference. 
						
						
					 
					
						2018-06-22 23:09:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9f14e7a98d 
					 
					
						
						
							
							MusicPipe: add MusicBuffer reference  
						
						... 
						
						
						
						This tiny amount of overhead allows omitting the MusicBuffer in
Clear(). 
						
						
					 
					
						2018-06-22 22:59:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cb412b221c 
					 
					
						
						
							
							output/multiple: update API documentation  
						
						
						
						
					 
					
						2018-06-22 22:59:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1ca1269a59 
					 
					
						
						
							
							input/curl: use class MaybeBufferedInputStream  
						
						... 
						
						
						
						For remote files (not streams), this downloads as quickly as possible
to a large buffer instead of throttling the stream during playback.
Throttling can make the server impatient and it may then disconnect.
This is what Qobuz and Tidal do, and this commit attempts to solve
this by not letting the Qobuz/Tidal server wait (closes  #241 ). 
						
						
					 
					
						2018-06-22 22:33:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6681b14b71 
					 
					
						
						
							
							input/MaybeBuffered: proxy InputStream implementation which auto-uses BufferedInputStream  
						
						
						
						
					 
					
						2018-06-22 22:33:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						12f2418445 
					 
					
						
						
							
							input/buffered: proxy InputStream implementation which caches in a huge buffer  
						
						
						
						
					 
					
						2018-06-22 22:33:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ae8a2ab652 
					 
					
						
						
							
							util/SparseBuffer: new utility class  
						
						
						
						
					 
					
						2018-06-22 22:18:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d0fbf6db59 
					 
					
						
						
							
							input/Stream: remove attribute "cond", replace with handler interface  
						
						... 
						
						
						
						This adds a bit of overhead, but also adds flexibility to the API,
because arbitrary triggers may be invoked from that virtual method
implementation, not just Cond::signal().
The motivation for this is to make the handlers more dynamic, for the
upcoming buffering class utilizing ProxyInputStream. 
						
						
					 
					
						2018-06-22 19:37:18 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						01d8eb6290 
					 
					
						
						
							
							input/rewind: move sources out of the "plugins" directory  
						
						... 
						
						
						
						This is not a plugin. 
						
						
					 
					
						2018-06-22 19:31:06 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						197968d65e 
					 
					
						
						
							
							input/Stream: mark qobuz:// and tidal:// as "seeking is expensive"  
						
						... 
						
						
						
						Those are loaded with the "curl" input plugin, and this one is
"expensive", because it needs to send a new HTTP request with Range
header for each seek. 
						
						
					 
					
						2018-06-21 22:35:36 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2cb83a1f84 
					 
					
						
						
							
							input/Stream: make "uri" const  
						
						
						
						
					 
					
						2018-06-14 17:31:54 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d7c94e30c5 
					 
					
						
						
							
							input/Stream: remove obsolete comment  
						
						
						
						
					 
					
						2018-06-14 17:31:33 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5217a74b7f 
					 
					
						
						
							
							storage/udisks: return file path in MapUTF8()  
						
						... 
						
						
						
						The absolute udisks:// URI is not usable with InputStream::Open(), and
thus we need to return the LocalStorage::MapUTF8() return value
instead. 
						
						
					 
					
						2018-06-05 22:01:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cccf35d140 
					 
					
						
						
							
							storage/udisks: add missing MountWait() call to MapFS()  
						
						
						
						
					 
					
						2018-06-05 21:56:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						249316c8fc 
					 
					
						
						
							
							storage/udisks: implement MapFS()  
						
						
						
						
					 
					
						2018-06-05 21:54:50 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ba8040d068 
					 
					
						
						
							
							storage/udisks: new plugin  
						
						... 
						
						
						
						Documentation will follow soon. 
						
						
					 
					
						2018-06-04 22:00:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5fa94d2a85 
					 
					
						
						
							
							lib/dbus/AsyncRequest: add missing include  
						
						
						
						
					 
					
						2018-06-04 22:00:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7eee79c145 
					 
					
						
						
							
							neighbor/udisks: move code to class UDisks2::ParseObjects(ODBus::Message)  
						
						
						
						
					 
					
						2018-06-04 21:50:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9626523420 
					 
					
						
						
							
							neighbor/udisks: move code to class UDisks2::ParseObjects(ReadMessageIter)  
						
						
						
						
					 
					
						2018-06-04 21:41:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						03c89c9cec 
					 
					
						
						
							
							neighbor/udisks: move ParseObject() to UDisks2.cxx  
						
						
						
						
					 
					
						2018-06-04 17:23:55 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						640de5518b 
					 
					
						
						
							
							neighbor/udisks: move struct UdisksObject to UDisks2.hxx  
						
						
						
						
					 
					
						2018-06-04 17:23:55 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a92c694f1b 
					 
					
						
						
							
							neighbor/Iter: add missing include  
						
						
						
						
					 
					
						2018-06-04 17:23:55 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a159299a4b 
					 
					
						
						
							
							lib/dbus/AsyncRequest: new helper class  
						
						
						
						
					 
					
						2018-06-04 12:21:17 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d048545f1a 
					 
					
						
						
							
							lib/dbus/Connection: add DBusConnection& cast operator  
						
						
						
						
					 
					
						2018-06-04 12:20:41 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						aea6d354b7 
					 
					
						
						
							
							lib/dbus/ObjectManager: use TypeTraits instead of CPP macro  
						
						
						
						
					 
					
						2018-06-03 20:30:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d3793dfe5b 
					 
					
						
						
							
							lib/dbus/Types: add ObjectPathTypeTraits  
						
						
						
						
					 
					
						2018-06-03 20:30:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						234f8d287a 
					 
					
						
						
							
							lib/dbus/Types: rename _MakeStructTypeAsString to ConcatTypeAsString  
						
						
						
						
					 
					
						2018-06-03 20:29:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8d49c2d028 
					 
					
						
						
							
							neighbor/udisks: show only filesystems, hide raw drives  
						
						
						
						
					 
					
						2018-06-03 20:20:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e560f6bc63 
					 
					
						
						
							
							lib/dbus/ReadIter: add ForEachProperty()  
						
						
						
						
					 
					
						2018-06-03 20:18:46 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fbfbc5682a 
					 
					
						
						
							
							lib/dbus/ReadIter: add ForEachRecurse()  
						
						
						
						
					 
					
						2018-06-03 20:18:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d4141bf7f1 
					 
					
						
						
							
							lib/dbus/ReadIter: add API documentation  
						
						
						
						
					 
					
						2018-06-03 20:05:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6c81fa1ec5 
					 
					
						
						
							
							neighbor/udisks: move code to ForEachInterface()  
						
						
						
						
					 
					
						2018-06-03 14:47:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						24874b8286 
					 
					
						
						
							
							Merge branch 'v0.20.x'  
						
						
						
						
					 
					
						2018-06-03 14:22:29 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b63664988f 
					 
					
						
						
							
							lib/dbus/Types: support DBUS_TYPE_DICT_ENTRY  
						
						
						
						
					 
					
						2018-06-03 12:19:17 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						eeb00ac45b 
					 
					
						
						
							
							util/TemplateString: new utility library  
						
						
						
						
					 
					
						2018-06-03 12:13:47 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						37e25f93d6 
					 
					
						
						
							
							lib/dbus/Glue: move Connect()/Disconnect() calls to I/O thread  
						
						
						
						
					 
					
						2018-06-03 12:08:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d58d65ebf0 
					 
					
						
						
							
							lib/dbus/Glue: use private connection  
						
						... 
						
						
						
						Avoid interfering with libraries also using the shared connection. 
						
						
					 
					
						2018-06-03 11:00:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						adf2d3aff2 
					 
					
						
						
							
							zeroconf/Avahi: move dbus_shutdown() call to the end of Main()  
						
						... 
						
						
						
						Calling dbus_shutdown() too early will break the "udisks2" neighbor
plugin. 
						
						
					 
					
						2018-06-03 10:37:54 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						32064a23c1 
					 
					
						
						
							
							neighbor/udisks2: move Open()/Close() calls into the I/O thread  
						
						... 
						
						
						
						Fixes assertion failure. 
						
						
					 
					
						2018-06-03 10:08:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c60b50b1ae 
					 
					
						
						
							
							neighbor/udisks2: use SafeSingleton for managing the ODBus::Glue instance  
						
						... 
						
						
						
						Allows other objects to use the same single instance as well. 
						
						
					 
					
						2018-06-03 09:58:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3ffdaf21f 
					 
					
						
						
							
							lib/dbus/Glue: singleton for global initialization  
						
						
						
						
					 
					
						2018-06-03 09:28:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3aade67046 
					 
					
						
						
							
							basic udisks2 support  
						
						... 
						
						
						
						To get udisks2 support started, this commit contains the configure.ac
option and a "neighbor" plugin which shows block devices.  Later, this
will allow mounting removable media with a new storage plugin. 
						
						
					 
					
						2018-06-02 19:44:46 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dc111bbec2 
					 
					
						
						
							
							odbus: import dbus-1 OO wrapper library  
						
						... 
						
						
						
						From a7cef404c1 
						
						
					 
					
						2018-06-02 19:15:56 +02:00 
						 
				 
			
				
					
						
							
							
								Christian Kröner 
							
						 
					 
					
						
						
							
						
						58590b71d1 
					 
					
						
						
							
							Fix pause for OSX output plugin (delay one second)  
						
						
						
						
					 
					
						2018-06-02 19:02:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8dcb1f805d 
					 
					
						
						
							
							db/proxy: support tags "ArtistSort", "AlbumArtistSort", "AlbumSort"  
						
						... 
						
						
						
						Closes  #284  
					
						2018-05-28 20:14:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a8b9e5b9b9 
					 
					
						
						
							
							db/proxy: add "password" setting  
						
						... 
						
						
						
						Closes  #283  
					
						2018-05-28 20:01:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						66a1e8b737 
					 
					
						
						
							
							Merge tag 'v0.20.20'  
						
						... 
						
						
						
						release v0.20.20 
						
						
					 
					
						2018-05-22 12:47:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c76f4ac89b 
					 
					
						
						
							
							player/Thread: pause all outputs in single mode  
						
						... 
						
						
						
						This mostly affects the Pulse output plugin which needs to "cork" the
stream (closes  #278 ). 
						
						
					 
					
						2018-05-12 14:44:07 +02:00 
						 
				 
			
				
					
						
							
							
								Michal Koutenský 
							
						 
					 
					
						
						
							
						
						d495ec71a8 
					 
					
						
						
							
							decoder/opus: add support for R128_ALBUM_GAIN tag  
						
						
						
						
					 
					
						2018-05-07 10:57:03 +02:00