Miguel A. Arroyo 
							
						 
					 
					
						
						
							
						
						e3809bd4f0 
					 
					
						
						
							
							feat: Add ShowMovement Tag  
						
						... 
						
						
						
						This commit adds the `SHOWMOVEMENT` [tag](https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html#show-work-movement-4 ). Historically, this tag originates from iTunes' MP4, but has since become widely used. It is created by Picard's Classical music [plugins](https://picard-docs.musicbrainz.org/en/variables/variables_classical.html ) (such as "Classical Extras" or "Work & Movement").
The reasoning behind this tag is to display Work & Movement titles without redundant information and in a more uniform way. Moreover, it additionally serves as an implicit marker denoting classical music tracks (genre tags aren't sufficient).
If the client so chooses to support this tag, they can display `Work` and `Movement` instead of the track title allowing for cleaner display. Other clients can continue to display the `%title%` as before without any fuss. 
						
						
					 
					
						2024-07-23 21:09:31 -07:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						41cc695848 
					 
					
						
						
							
							Instance: fix io/rtio thread mixup  
						
						... 
						
						
						
						Fixes regression by commit 43d633f560 
						
						
					 
					
						2024-07-23 15:12:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3558317dc9 
					 
					
						
						
							
							event/MultiSocketMonitor: remove force-refresh on every iteration  
						
						... 
						
						
						
						libasound guarantees that the file descriptors never change for a
"prepared" PCM device, thus we can omit this defensive kludge. 
						
						
					 
					
						2024-07-23 15:08:55 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						18cb34825d 
					 
					
						
						
							
							input/alsa: use libfmt instead of std::string concatenation  
						
						
						
						
					 
					
						2024-07-23 15:04:49 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4c4a3c8664 
					 
					
						
						
							
							event/TimerList: use FineTimerEvent::GetDue()  
						
						... 
						
						
						
						Avoid accessing the private field from an inner class of the friend
class, because some compilers apparently don't like it (Apple clang). 
						
						
					 
					
						2024-07-23 13:38:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b4374ddb35 
					 
					
						
						
							
							python/build/libs.py: update libopenmpt to 0.7.9  
						
						
						
						
					 
					
						2024-07-23 13:08:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d24e7763f6 
					 
					
						
						
							
							net/AddressInfo: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:05:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						49ad4e9f3c 
					 
					
						
						
							
							io/FileDescriptor: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:05:02 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ea96b321dc 
					 
					
						
						
							
							net/SocketAdddress: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:04:48 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bc758cece0 
					 
					
						
						
							
							util/StringPointer: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:04:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0e4885c1fa 
					 
					
						
						
							
							util/IterableSplitString: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:04:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9944c97203 
					 
					
						
						
							
							util/AllocatedString: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:04:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						58a5550439 
					 
					
						
						
							
							util/AllocatedArray: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-23 13:04:10 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8e42467bd2 
					 
					
						
						
							
							decoder/mpg123: relax mpg123_length() check in Scan()  
						
						... 
						
						
						
						Do not fail the Scan() function completely if libmpg123 cannot
determine the duration. 
						
						
					 
					
						2024-07-12 16:11:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e00e7802c8 
					 
					
						
						
							
							decoder/mpg123: report unknown duration if mpg123_length()<0  
						
						... 
						
						
						
						Closes https://github.com/MusicPlayerDaemon/MPD/issues/2058  
						
						
					 
					
						2024-07-12 16:09:35 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						55d0bbade2 
					 
					
						
						
							
							decoder/mpg123: move code to GetDuration()  
						
						
						
						
					 
					
						2024-07-12 16:08:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						de9f0dc910 
					 
					
						
						
							
							playlist/Plugin: convert _init() and _finish() to methods  
						
						
						
						
					 
					
						2024-07-12 16:00:42 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cf5970a6e1 
					 
					
						
						
							
							output/Registry: replace output_plugins_for_each() with a container class  
						
						
						
						
					 
					
						2024-07-12 15:55:01 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						29747a213f 
					 
					
						
						
							
							playlist/Registry: replace playlist_plugins_for_each() with a container class  
						
						
						
						
					 
					
						2024-07-12 15:52:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c64b4838dc 
					 
					
						
						
							
							encoder/List: replace encoder_plugins_for_each() with a container class  
						
						
						
						
					 
					
						2024-07-12 14:59:18 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						040c4a8560 
					 
					
						
						
							
							archive/ArchiveList: replace archive_plugins_for_each() with a container class  
						
						
						
						
					 
					
						2024-07-12 09:58:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90dfa437e0 
					 
					
						
						
							
							lib/alsa/NonBlock: use a persistent pollfd array  
						
						... 
						
						
						
						This implements the semantic API change introduced by commit
cd04da2bcf 
						
						
					 
					
						2024-07-11 21:47:15 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4486b2eded 
					 
					
						
						
							
							lib/alsa/NonBlock: add common base class  
						
						
						
						
					 
					
						2024-07-11 21:38:45 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3db8a4f41b 
					 
					
						
						
							
							lib/alsa/NonBlock: embed in "namespace Alsa"  
						
						
						
						
					 
					
						2024-07-11 21:33:03 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9704cf3dcb 
					 
					
						
						
							
							lib/alsa/NonBlock: fix lambda indent  
						
						
						
						
					 
					
						2024-07-11 21:12:18 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9aa6b03ba8 
					 
					
						
						
							
							event/MultiSocketMonitor: pass std::span to ReplaceSocketList()  
						
						
						
						
					 
					
						2024-07-11 21:09:27 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						45f92f0ef0 
					 
					
						
						
							
							event/MultiSocketMonitor: fix lambda indent  
						
						
						
						
					 
					
						2024-07-11 21:06:33 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						23a3278b4e 
					 
					
						
						
							
							event/MultiSocketMonitor: make ctor protected and explicit  
						
						
						
						
					 
					
						2024-07-11 21:05:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						951f916440 
					 
					
						
						
							
							mixer/alsa: add noexcept  
						
						
						
						
					 
					
						2024-07-11 21:03:41 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fb87e19bae 
					 
					
						
						
							
							input/Registry: replace the input_plugins_for_each macros with a container class  
						
						
						
						
					 
					
						2024-07-11 20:52:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						49edb16de0 
					 
					
						
						
							
							decoder/Thread: add enum DecodeResult, log better diagnostics  
						
						... 
						
						
						
						Closes https://github.com/MusicPlayerDaemon/MPD/issues/2076  
						
						
					 
					
						2024-07-11 16:47:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8671896e4c 
					 
					
						
						
							
							decoder/Thread: throw StopDecoder if command==STOP in decoder_run_stream()  
						
						... 
						
						
						
						Everybody else is doing that, so let's do the same and not pretend
playback was successful. 
						
						
					 
					
						2024-07-11 16:28:57 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c2470ebd9c 
					 
					
						
						
							
							decoder/List: eliminate decoder_plugins_try()  
						
						... 
						
						
						
						Migrate callers to GetEnabledDecoderPlugins().  By not using lambdas,
we can switch to enums as return value for better diagnostics. 
						
						
					 
					
						2024-07-11 16:15:38 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a27fb71c4c 
					 
					
						
						
							
							decoder/List: add iterable container for decoder plugins  
						
						
						
						
					 
					
						2024-07-11 15:30:31 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f6a687dc2b 
					 
					
						
						
							
							util/FilteredContainer: new class  
						
						
						
						
					 
					
						2024-07-11 15:30:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9210705598 
					 
					
						
						
							
							util/TerminatedArray: new class  
						
						
						
						
					 
					
						2024-07-11 15:30:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3d995bba5f 
					 
					
						
						
							
							util/DereferenceIterator: add class DereferenceContainerAdapter  
						
						
						
						
					 
					
						2024-07-11 14:55:35 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c77f5095d6 
					 
					
						
						
							
							util/DereferenceIterator: allow comparing with sentinel end iterators  
						
						
						
						
					 
					
						2024-07-11 14:55:35 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3701378449 
					 
					
						
						
							
							util/DereferenceIterator: fix operator- and operator+ return types  
						
						
						
						
					 
					
						2024-07-11 14:29:10 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cb9f3c1a5b 
					 
					
						
						
							
							util/DereferenceIterator: optimize and simplify increment/decrement operators  
						
						
						
						
					 
					
						2024-07-11 14:27:23 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fe66cde616 
					 
					
						
						
							
							util/DereferenceIterator: add constexpr  
						
						
						
						
					 
					
						2024-07-10 20:13:24 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0cc9ef0aee 
					 
					
						
						
							
							util/DereferenceIterator: remove unnecessary operator!=()  
						
						... 
						
						
						
						The compiler must generate this implicitly from operator==(). 
						
						
					 
					
						2024-07-10 20:13:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						68a424d9e1 
					 
					
						
						
							
							util/DereferenceIterator: add missing const  
						
						
						
						
					 
					
						2024-07-10 20:11:55 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						13576b8a2e 
					 
					
						
						
							
							lib/curl/Easy: use pass std::chrono::duration to SetTimeout()  
						
						
						
						
					 
					
						2024-07-10 16:58:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7c21d57953 
					 
					
						
						
							
							config/Block: add method GetDuration()  
						
						
						
						
					 
					
						2024-07-10 16:58:16 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1e9e182a32 
					 
					
						
						
							
							config/Data: merge the two duration parser methods, pass minimum value  
						
						
						
						
					 
					
						2024-07-10 16:49:18 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3733bc57b7 
					 
					
						
						
							
							config/{Block,Data,Param}: add concept checks to With()  
						
						
						
						
					 
					
						2024-07-10 16:38:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a196d1ddf2 
					 
					
						
						
							
							decoder/Thread, ...: quote log strings  
						
						
						
						
					 
					
						2024-07-10 15:40:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8861279add 
					 
					
						
						
							
							Merge branch 'explicit_case_sensitivity' of  https://github.com/geneticdrift/MPD  
						
						
						
						
					 
					
						2024-07-10 15:33:47 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f2f6dc5897 
					 
					
						
						
							
							subprojects: update fmt to 11.0.1  
						
						
						
						
					 
					
						2024-07-10 09:32:11 +02:00