Compare commits
89 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
938728820b | ||
![]() |
80531ef8d8 | ||
![]() |
a91fba6a3d | ||
![]() |
f8be403c34 | ||
![]() |
28a5cdf319 | ||
![]() |
6b1d264b35 | ||
![]() |
a6c10e9a1c | ||
![]() |
19a46064e9 | ||
![]() |
b57eeaa720 | ||
![]() |
ad059d5804 | ||
![]() |
6e1940e930 | ||
![]() |
103194e32d | ||
![]() |
481c330c17 | ||
![]() |
7ef489e057 | ||
![]() |
d9e5d5ff5b | ||
![]() |
ca02fb7782 | ||
![]() |
d4d06da2f8 | ||
![]() |
efde78db77 | ||
![]() |
f1b8bcd6b2 | ||
![]() |
c2bc3704e1 | ||
![]() |
def120aca4 | ||
![]() |
6d2b09ac2b | ||
![]() |
78b43a9930 | ||
![]() |
da5ff779c6 | ||
![]() |
e7da5b104d | ||
![]() |
4be76f3c8f | ||
![]() |
c58c53293c | ||
![]() |
8695a2806a | ||
![]() |
a59f1b21a6 | ||
![]() |
9e2d09dabc | ||
![]() |
2719f62feb | ||
![]() |
234cedd6c6 | ||
![]() |
5b946e9d95 | ||
![]() |
b46ca50dcc | ||
![]() |
a0d76c3be9 | ||
![]() |
995aafe9cc | ||
![]() |
6e33566cee | ||
![]() |
3b3c1d466d | ||
![]() |
056ab199ab | ||
![]() |
eea0e084af | ||
![]() |
fa82f558be | ||
![]() |
6b555b7017 | ||
![]() |
dafba203e7 | ||
![]() |
a5d382348e | ||
![]() |
74396448df | ||
![]() |
168d6257b4 | ||
![]() |
1afa33c3c7 | ||
![]() |
3a7c9c7c84 | ||
![]() |
6d08e761c8 | ||
![]() |
fee282f49c | ||
![]() |
07d2bc6898 | ||
![]() |
9551166f27 | ||
![]() |
2a8c420cff | ||
![]() |
ec1e04a65d | ||
![]() |
97a2122f41 | ||
![]() |
3825175bfc | ||
![]() |
68f4be323c | ||
![]() |
4949cd98f3 | ||
![]() |
a14ce4c7cb | ||
![]() |
85a5b7dec4 | ||
![]() |
153d464ce8 | ||
![]() |
83391e2bd9 | ||
![]() |
ec0d3ac95d | ||
![]() |
e99f6b5b38 | ||
![]() |
74b2fc7fdc | ||
![]() |
216f62ea14 | ||
![]() |
b7d0001390 | ||
![]() |
687788e4d3 | ||
![]() |
5348f8c9c8 | ||
![]() |
5a4ebf8291 | ||
![]() |
7ae3664c91 | ||
![]() |
1caed3e390 | ||
![]() |
7adb907a55 | ||
![]() |
af2896547a | ||
![]() |
d9583faf06 | ||
![]() |
2788cf9330 | ||
![]() |
92bfdffa42 | ||
![]() |
38b41fc3fd | ||
![]() |
394f69bee1 | ||
![]() |
ba5531f9dd | ||
![]() |
60d19b2380 | ||
![]() |
004d6a3b66 | ||
![]() |
3e79e62c17 | ||
![]() |
27b69330f4 | ||
![]() |
6b50b67339 | ||
![]() |
51ca775a1c | ||
![]() |
1092882f38 | ||
![]() |
8a7986c3bf | ||
![]() |
c7bd8c663d |
AUTHORSNEWS
android
doc
meson.buildpython/build
src
BulkEdit.hxxChrono.hxxCommandLine.cxxCommandLine.hxxGitVersion.cxxGitVersion.hxxIcyMetaDataParser.cxxIcyMetaDataParser.hxxIdle.cxxIdle.hxxIdleFlags.cxxIdleFlags.hxxInstance.cxxInstance.hxxListen.cxxListen.hxxLocateUri.cxxLocateUri.hxxLog.cxxLog.hxxLogBackend.cxxLogBackend.hxxLogInit.cxxLogInit.hxxLogLevel.hxxLogV.hxxMain.cxxMain.hxxMapper.cxxMapper.hxxMixRampInfo.hxxMusicBuffer.cxxMusicBuffer.hxxMusicChunk.cxxMusicChunk.hxxMusicChunkPtr.cxxMusicChunkPtr.hxxMusicPipe.cxxMusicPipe.hxxPartition.cxxPartition.hxxPermission.cxxPermission.hxxPlaylistDatabase.cxxPlaylistDatabase.hxxPlaylistError.cxxPlaylistError.hxxPlaylistFile.cxxPlaylistFile.hxxPlaylistPrint.cxxPlaylistPrint.hxxPlaylistSave.cxxPlaylistSave.hxxPluginUnavailable.hxxRemoteTagCache.cxxRemoteTagCache.hxxRemoteTagCacheHandler.hxxReplayGainConfig.hxxReplayGainGlobal.cxxReplayGainGlobal.hxxReplayGainInfo.cxxReplayGainInfo.hxxReplayGainMode.cxxReplayGainMode.hxxSingleMode.cxxSingleMode.hxxSongLoader.cxxSongLoader.hxxSongPrint.cxxSongPrint.hxxSongSave.cxxSongSave.hxxSongUpdate.cxxStateFile.cxxStateFile.hxxStateFileConfig.cxxStateFileConfig.hxxStats.cxxStats.hxxTagAny.cxxTagAny.hxxTagArchive.cxxTagArchive.hxxTagFile.cxxTagFile.hxxTagPrint.cxxTagPrint.hxxTagSave.cxxTagSave.hxxTagStream.cxxTagStream.hxxTimePrint.cxxTimePrint.hxxls.cxxls.hxx
android
AudioManager.cxxAudioManager.hxxContext.cxxContext.hxxEnvironment.cxxEnvironment.hxxLogListener.cxxLogListener.hxx
archive
ArchiveFile.hxxArchiveList.cxxArchiveList.hxxArchivePlugin.cxxArchivePlugin.hxxArchiveVisitor.hxx
plugins
client
BackgroundCommand.hxxClient.cxxClient.hxxConfig.cxxConfig.hxxDomain.cxxDomain.hxxEvent.cxxExpire.cxxFile.cxxIdle.cxxList.cxxList.hxxListener.cxxListener.hxxMessage.cxxMessage.hxxNew.cxxProcess.cxxRead.cxxResponse.cxxResponse.hxxSubscribe.cxxThreadBackgroundCommand.cxxThreadBackgroundCommand.hxxWrite.cxx
command
AllCommands.cxxAllCommands.hxxClientCommands.cxxClientCommands.hxxCommandError.cxxCommandError.hxxCommandListBuilder.cxxCommandListBuilder.hxxCommandResult.hxxDatabaseCommands.cxxDatabaseCommands.hxxFileCommands.cxxFileCommands.hxxFingerprintCommands.cxxFingerprintCommands.hxxMessageCommands.cxxMessageCommands.hxxNeighborCommands.cxxNeighborCommands.hxxOtherCommands.cxxOtherCommands.hxxOutputCommands.cxxOutputCommands.hxxPartitionCommands.cxxPartitionCommands.hxxPlayerCommands.cxxPlayerCommands.hxxPlaylistCommands.cxxPlaylistCommands.hxxQueueCommands.cxxQueueCommands.hxxRequest.hxxStickerCommands.cxxStickerCommands.hxxStorageCommands.cxxStorageCommands.hxxTagCommands.cxxTagCommands.hxx
config
Block.cxxBlock.hxxCheck.cxxCheck.hxxData.cxxData.hxxDefaults.hxxDomain.cxxDomain.hxxFile.cxxFile.hxxMigrate.cxxMigrate.hxxNet.cxxNet.hxxOption.hxxParam.cxxParam.hxxParser.cxxParser.hxxPath.cxxPath.hxxTemplates.cxxTemplates.hxx
db
Configured.cxxConfigured.hxxCount.cxxCount.hxxDatabaseError.hxxDatabaseGlue.cxxDatabaseGlue.hxxDatabaseListener.hxxDatabaseLock.cxxDatabaseLock.hxxDatabasePlaylist.cxxDatabasePlaylist.hxxDatabasePlugin.hxxDatabasePrint.cxxDatabasePrint.hxxDatabaseQueue.cxxDatabaseQueue.hxxDatabaseSong.cxxDatabaseSong.hxxHelpers.cxxHelpers.hxxInterface.hxxLightDirectory.hxxPlaylistInfo.hxxPlaylistVector.cxxPlaylistVector.hxxPtr.hxxRegistry.cxxRegistry.hxxSelection.cxxSelection.hxxStats.hxxUniqueTags.cxxUniqueTags.hxxUri.hxxVHelper.cxxVHelper.hxxVisitor.hxx
plugins
ProxyDatabasePlugin.cxxProxyDatabasePlugin.hxx
simple
DatabaseSave.cxxDatabaseSave.hxxDirectory.cxxDirectory.hxxDirectorySave.cxxDirectorySave.hxxExportedSong.hxxMount.cxxMount.hxxPrefixedLightSong.hxxPtr.hxxSimpleDatabasePlugin.cxxSimpleDatabasePlugin.hxxSong.cxxSong.hxxSongSort.cxxSongSort.hxx
upnp
update
Archive.cxxConfig.cxxConfig.hxxContainer.cxxEditor.cxxEditor.hxxExcludeList.cxxExcludeList.hxxInotifyDomain.cxxInotifyDomain.hxxInotifyQueue.cxxInotifyQueue.hxxInotifySource.cxxInotifySource.hxxInotifyUpdate.cxxInotifyUpdate.hxxPlaylist.cxxQueue.cxxQueue.hxxRemove.cxxRemove.hxxService.cxxService.hxxSpecialDirectory.cxxUpdateDomain.cxxUpdateDomain.hxxUpdateIO.cxxUpdateIO.hxxUpdateSong.cxxVirtualDirectory.cxxWalk.cxxWalk.hxx
decoder
Bridge.cxxBridge.hxxClient.hxxCommand.hxxControl.cxxControl.hxxDecoderAPI.cxxDecoderAPI.hxxDecoderBuffer.cxxDecoderBuffer.hxxDecoderList.cxxDecoderList.hxxDecoderPlugin.cxxDecoderPlugin.hxxDecoderPrint.cxxDecoderPrint.hxxDomain.cxxDomain.hxxReader.cxxReader.hxxThread.cxx
plugins
AdPlugDecoderPlugin.cxxAdPlugDecoderPlugin.hAudiofileDecoderPlugin.cxxAudiofileDecoderPlugin.hxxDsdLib.cxxDsdLib.hxxDsdiffDecoderPlugin.cxxDsdiffDecoderPlugin.hxxDsfDecoderPlugin.cxxDsfDecoderPlugin.hxxFaadDecoderPlugin.cxxFaadDecoderPlugin.hxxFfmpegDecoderPlugin.cxxFfmpegDecoderPlugin.hxxFfmpegIo.cxxFfmpegIo.hxxFfmpegMetaData.cxxFfmpegMetaData.hxxFlacCommon.cxxFlacCommon.hxxFlacDecoderPlugin.cxxFlacDecoderPlugin.hFlacDomain.cxxFlacDomain.hxxFlacInput.cxxFlacInput.hxxFlacPcm.cxxFlacPcm.hxxFlacStreamDecoder.hxxFluidsynthDecoderPlugin.cxxFluidsynthDecoderPlugin.hxxGmeDecoderPlugin.cxxGmeDecoderPlugin.hxxHybridDsdDecoderPlugin.cxxHybridDsdDecoderPlugin.hxxMadDecoderPlugin.cxxMadDecoderPlugin.hxxMikmodDecoderPlugin.cxxMikmodDecoderPlugin.hxxModplugDecoderPlugin.cxxModplugDecoderPlugin.hxxMpcdecDecoderPlugin.cxxMpcdecDecoderPlugin.hxxMpg123DecoderPlugin.cxxMpg123DecoderPlugin.hxxOggCodec.cxxOggCodec.hxxOggDecoder.cxxOggDecoder.hxxOpusDecoderPlugin.cxxOpusDecoderPlugin.hOpusDomain.cxxOpusDomain.hxxOpusHead.cxxOpusHead.hxxOpusReader.hxxOpusTags.cxxOpusTags.hxxPcmDecoderPlugin.cxxPcmDecoderPlugin.hxxSidplayDecoderPlugin.cxxSidplayDecoderPlugin.hxxSndfileDecoderPlugin.cxxSndfileDecoderPlugin.hxxVorbisDecoderPlugin.cxxVorbisDecoderPlugin.hVorbisDomain.cxxVorbisDomain.hxxWavpackDecoderPlugin.cxxWavpackDecoderPlugin.hxxWildmidiDecoderPlugin.cxxWildmidiDecoderPlugin.hxx
encoder
Configured.cxxConfigured.hxxEncoderAPI.hxxEncoderInterface.hxxEncoderList.cxxEncoderList.hxxEncoderPlugin.hxxToOutputStream.cxxToOutputStream.hxx
plugins
FlacEncoderPlugin.cxxFlacEncoderPlugin.hxxLameEncoderPlugin.cxxLameEncoderPlugin.hxxNullEncoderPlugin.cxxNullEncoderPlugin.hxxOggEncoder.hxxOpusEncoderPlugin.cxxOpusEncoderPlugin.hxxShineEncoderPlugin.cxxShineEncoderPlugin.hxxTwolameEncoderPlugin.cxxTwolameEncoderPlugin.hxxVorbisEncoderPlugin.cxxVorbisEncoderPlugin.hxxWaveEncoderPlugin.cxxWaveEncoderPlugin.hxx
event
BufferedSocket.cxxBufferedSocket.hxxCall.cxxCall.hxxChrono.hxxDeferEvent.cxxDeferEvent.hxxFullyBufferedSocket.cxxFullyBufferedSocket.hxxIdleMonitor.cxxIdleMonitor.hxxLoop.cxxLoop.hxxMaskMonitor.cxxMaskMonitor.hxxMultiSocketMonitor.cxxMultiSocketMonitor.hxxPollGroup.hxxPollGroupEpoll.hxxPollGroupPoll.cxxPollGroupPoll.hxxPollGroupWinSelect.cxxPollGroupWinSelect.hxxPollResultGeneric.hxxServerSocket.cxxServerSocket.hxxSignalMonitor.cxxSignalMonitor.hxxSocketMonitor.cxxSocketMonitor.hxxThread.cxxThread.hxxTimerEvent.cxxTimerEvent.hxxUringManager.cxxUringManager.hxxWakeFD.hxx
filter
Factory.cxxFactory.hxxFilter.cxxFilter.hxxFilterPlugin.hxxLoadChain.cxxLoadChain.hxxLoadOne.cxxLoadOne.hxxNullFilter.hxxObserver.cxxObserver.hxxPrepared.hxxRegistry.cxxRegistry.hxx
plugins
AutoConvertFilterPlugin.cxxAutoConvertFilterPlugin.hxxChainFilterPlugin.cxxChainFilterPlugin.hxxConvertFilterPlugin.cxxConvertFilterPlugin.hxxFfmpegFilter.cxxFfmpegFilter.hxxFfmpegFilterPlugin.cxxFfmpegFilterPlugin.hxxHdcdFilterPlugin.cxxHdcdFilterPlugin.hxxNormalizeFilterPlugin.cxxNormalizeFilterPlugin.hxxNullFilterPlugin.cxxNullFilterPlugin.hxxReplayGainFilterPlugin.cxxReplayGainFilterPlugin.hxxRouteFilterPlugin.cxxRouteFilterPlugin.hxxTwoFilters.cxxTwoFilters.hxxVolumeFilterPlugin.cxxVolumeFilterPlugin.hxx
fs
AllocatedPath.cxxAllocatedPath.hxxCharset.cxxCharset.hxxCheckFile.cxxCheckFile.hxxConfig.cxxConfig.hxxDirectoryReader.cxxDirectoryReader.hxxDomain.cxxDomain.hxxFeatures.hxxFileInfo.hxxFileSystem.cxxFileSystem.hxxGlob.hxxLimits.hxxList.cxxList.hxxLookupFile.cxxLookupFile.hxxNarrowPath.cxxNarrowPath.hxxPath.cxxPath.hxxPath2.cxxStandardDirectory.cxxStandardDirectory.hxxTraits.cxxTraits.hxxXDG.hxx
io
input
AsyncInputStream.cxxAsyncInputStream.hxxBufferedInputStream.cxxBufferedInputStream.hxxBufferingInputStream.cxxBufferingInputStream.hxxCondHandler.hxxError.cxxError.hxxFailingInputStream.hxxHandler.hxxIcyInputStream.cxxIcyInputStream.hxxInit.cxxInit.hxxInputPlugin.cxxInputPlugin.hxxInputStream.cxxInputStream.hxxLocalOpen.cxxLocalOpen.hxxMaybeBufferedInputStream.cxxMaybeBufferedInputStream.hxxOffset.hxxOpen.cxxProxyInputStream.cxxProxyInputStream.hxxPtr.hxxReader.cxxReader.hxxRegistry.cxxRegistry.hxxRemoteTagScanner.hxxRewindInputStream.cxxRewindInputStream.hxxScanTags.cxxScanTags.hxxTextInputStream.cxxTextInputStream.hxxThreadInputStream.cxxThreadInputStream.hxx
cache
plugins
AlsaInputPlugin.cxxAlsaInputPlugin.hxxArchiveInputPlugin.cxxArchiveInputPlugin.hxxCdioParanoiaInputPlugin.cxxCdioParanoiaInputPlugin.hxxCurlInputPlugin.cxxCurlInputPlugin.hxxFfmpegInputPlugin.cxxFfmpegInputPlugin.hxxFileInputPlugin.cxxFileInputPlugin.hxxMmsInputPlugin.cxxMmsInputPlugin.hxxNfsInputPlugin.cxxNfsInputPlugin.hxxQobuzClient.cxxQobuzClient.hxxQobuzErrorParser.cxxQobuzErrorParser.hxxQobuzInputPlugin.cxxQobuzInputPlugin.hxxQobuzLoginRequest.cxxQobuzLoginRequest.hxxQobuzSession.hxxQobuzTagScanner.cxxQobuzTagScanner.hxxQobuzTrackRequest.cxxQobuzTrackRequest.hxxSmbclientInputPlugin.cxxSmbclientInputPlugin.hxxTidalError.hxxTidalErrorParser.cxxTidalErrorParser.hxxTidalInputPlugin.cxxTidalInputPlugin.hxxTidalLoginRequest.cxxTidalLoginRequest.hxxTidalSessionManager.cxxTidalSessionManager.hxxTidalTagScanner.cxxTidalTagScanner.hxxTidalTrackRequest.cxxTidalTrackRequest.hxxUringInputPlugin.cxxUringInputPlugin.hxx
lib
alsa
AllowedFormat.cxxAllowedFormat.hxxFormat.hxxHwSetup.cxxHwSetup.hxxNonBlock.cxxNonBlock.hxxPeriodBuffer.hxxVersion.cxxVersion.hxx
chromaprint
curl
dbus
expat
ffmpeg
Buffer.hxxCodec.hxxDetectFilterFormat.cxxDetectFilterFormat.hxxDomain.cxxDomain.hxxError.cxxError.hxxFilter.cxxFilter.hxxFormat.hxxFrame.hxxIOContext.hxxInit.cxxInit.hxxInterleave.cxxInterleave.hxxLogCallback.cxxLogCallback.hxxLogError.cxxLogError.hxxSampleFormat.hxxTime.hxxmeson.build
icu
CaseFold.cxxCaseFold.hxxCollate.cxxCollate.hxxCompare.cxxCompare.hxxConverter.cxxConverter.hxxInit.cxxInit.hxxUtil.cxxUtil.hxxWin32.cxxWin32.hxx
nfs
Base.cxxBase.hxxBlocking.cxxBlocking.hxxCallback.hxxCancellable.hxxConnection.cxxConnection.hxxFileReader.cxxFileReader.hxxGlue.cxxGlue.hxxLease.hxxManager.cxxManager.hxx
pcre
pulse
smbclient
sqlite
upnp
Action.hxxCallback.hxxClientInit.cxxClientInit.hxxCompat.hxxContentDirectoryService.cxxContentDirectoryService.hxxDevice.cxxDevice.hxxDiscovery.cxxDiscovery.hxxInit.cxxInit.hxxUniqueIxml.hxxUtil.cxxUtil.hxx
xiph
FlacAudioFormat.hxxFlacIOHandle.cxxFlacIOHandle.hxxFlacMetadataChain.cxxFlacMetadataChain.hxxFlacMetadataIterator.hxxFlacStreamMetadata.cxxFlacStreamMetadata.hxxOggFind.cxxOggFind.hxxOggPacket.cxxOggPacket.hxxOggPage.hxxOggSerial.cxxOggSerial.hxxOggStreamState.hxxOggSyncState.cxxOggSyncState.hxxOggVisitor.cxxOggVisitor.hxxScanVorbisComment.cxxScanVorbisComment.hxxVorbisComment.hxxVorbisComments.cxxVorbisComments.hxxVorbisPicture.cxxVorbisPicture.hxxXiphTags.cxxXiphTags.hxx
yajl
mixer
Listener.hxxMixerAll.cxxMixerControl.cxxMixerControl.hxxMixerInternal.hxxMixerList.hxxMixerPlugin.hxxMixerType.cxxMixerType.hxxVolume.cxxVolume.hxx
plugins
neighbor
net
open.houtput
Client.hxxControl.cxxControl.hxxDefaults.cxxDefaults.hxxDomain.cxxDomain.hxxError.hxxFiltered.cxxFiltered.hxxFinish.cxxInit.cxxInterface.cxxInterface.hxxMultipleOutputs.cxxMultipleOutputs.hxxOutputAPI.hxxOutputCommand.cxxOutputCommand.hxxOutputPlugin.cxxOutputPlugin.hxxPrint.cxxPrint.hxxRegistry.cxxRegistry.hxxSharedPipeConsumer.cxxSharedPipeConsumer.hxxSource.cxxSource.hxxState.cxxState.hxxThread.cxxTimer.cxxTimer.hxx
plugins
AlsaOutputPlugin.cxxAlsaOutputPlugin.hxxAoOutputPlugin.cxxAoOutputPlugin.hxxFifoOutputPlugin.cxxFifoOutputPlugin.hxxHaikuOutputPlugin.cxxHaikuOutputPlugin.hxxJackOutputPlugin.cxxJackOutputPlugin.hxxNullOutputPlugin.cxxNullOutputPlugin.hxxOSXOutputPlugin.cxxOSXOutputPlugin.hxxOpenALOutputPlugin.cxxOpenALOutputPlugin.hxxOssOutputPlugin.cxxOssOutputPlugin.hxxPipeOutputPlugin.cxxPipeOutputPlugin.hxxPulseOutputPlugin.cxxPulseOutputPlugin.hxxRecorderOutputPlugin.cxxRecorderOutputPlugin.hxxShoutOutputPlugin.cxxShoutOutputPlugin.hxxSndioOutputPlugin.cxxSndioOutputPlugin.hxxSolarisOutputPlugin.cxxSolarisOutputPlugin.hxxWasapiOutputPlugin.cxxWasapiOutputPlugin.hxxWinmmOutputPlugin.cxxWinmmOutputPlugin.hxx
httpd
HttpdClient.cxxHttpdClient.hxxHttpdInternal.hxxHttpdOutputPlugin.cxxHttpdOutputPlugin.hxxIcyMetaDataServer.cxxIcyMetaDataServer.hxxPage.cxxPage.hxx
sles
pcm
AudioFormat.cxxAudioFormat.hxxAudioParser.cxxAudioParser.hxxBuffer.cxxBuffer.hxxChannelDefs.hxxChannelsConverter.cxxChannelsConverter.hxxCheckAudioFormat.cxxCheckAudioFormat.hxxClamp.hxxConfiguredResampler.cxxConfiguredResampler.hxxConvert.cxxConvert.hxxDither.cxxDither.hxxDop.cxxDop.hxxDsd16.cxxDsd16.hxxDsd32.cxxDsd32.hxxExport.cxxExport.hxxFallbackResampler.cxxFallbackResampler.hxxFloatConvert.hxxFormatConverter.cxxFormatConverter.hxxGlueResampler.cxxGlueResampler.hxxInterleave.cxxInterleave.hxxLibsamplerateResampler.cxxLibsamplerateResampler.hxxMix.cxxMix.hxxNeon.hxxOrder.cxxOrder.hxxPack.cxxPack.hxxPcmChannels.cxxPcmChannels.hxxPcmDsd.cxxPcmDsd.hxxPcmFormat.cxxPcmFormat.hxxPrng.hxxResampler.hxxRestBuffer.hxxSampleFormat.cxxSampleFormat.hxxShiftConvert.hxxSilence.cxxSilence.hxxSoxrResampler.cxxSoxrResampler.hxxTraits.hxxVolume.cxxVolume.hxx
player
playlist
MemorySongEnumerator.cxxMemorySongEnumerator.hxxPlaylistAny.cxxPlaylistAny.hxxPlaylistMapper.cxxPlaylistMapper.hxxPlaylistPlugin.cxxPlaylistPlugin.hxxPlaylistQueue.cxxPlaylistQueue.hxxPlaylistRegistry.cxxPlaylistRegistry.hxxPlaylistSong.cxxPlaylistSong.hxxPlaylistStream.cxxPlaylistStream.hxxPrint.cxxPrint.hxxSongEnumerator.hxx
cue
plugins
AsxPlaylistPlugin.cxxAsxPlaylistPlugin.hxxCuePlaylistPlugin.cxxCuePlaylistPlugin.hxxEmbeddedCuePlaylistPlugin.cxxEmbeddedCuePlaylistPlugin.hxxExtM3uPlaylistPlugin.cxxExtM3uPlaylistPlugin.hxxFlacPlaylistPlugin.cxxFlacPlaylistPlugin.hxxM3uPlaylistPlugin.cxxM3uPlaylistPlugin.hxxPlsPlaylistPlugin.cxxPlsPlaylistPlugin.hxxRssPlaylistPlugin.cxxRssPlaylistPlugin.hxxSoundCloudPlaylistPlugin.cxxSoundCloudPlaylistPlugin.hxxXspfPlaylistPlugin.cxxXspfPlaylistPlugin.hxx
protocol
queue
IdTable.hxxListener.hxxPlaylist.cxxPlaylist.hxxPlaylistControl.cxxPlaylistEdit.cxxPlaylistState.cxxPlaylistState.hxxPlaylistTag.cxxPlaylistUpdate.cxxQueue.cxxQueue.hxxQueuePrint.cxxQueuePrint.hxxQueueSave.cxxQueueSave.hxx
song
AndSongFilter.cxxAndSongFilter.hxxAudioFormatSongFilter.cxxAudioFormatSongFilter.hxxBaseSongFilter.cxxBaseSongFilter.hxxDetachedSong.cxxDetachedSong.hxxEscape.cxxEscape.hxxFilter.cxxFilter.hxxISongFilter.hxxLightSong.cxxLightSong.hxxModifiedSinceSongFilter.cxxModifiedSinceSongFilter.hxxNotSongFilter.hxxOptimizeFilter.cxxOptimizeFilter.hxxStringFilter.cxxStringFilter.hxxTagSongFilter.cxxTagSongFilter.hxxUriSongFilter.cxxUriSongFilter.hxx
sticker
storage
CompositeStorage.cxxCompositeStorage.hxxConfigured.cxxConfigured.hxxFileInfo.hxxMemoryDirectoryReader.cxxMemoryDirectoryReader.hxxRegistry.cxxRegistry.hxxStorageInterface.cxxStorageInterface.hxxStoragePlugin.hxxStorageState.cxxStorageState.hxx
plugins
system
tag
Aiff.cxxAiff.hxxApeLoader.cxxApeLoader.hxxApeReplayGain.cxxApeReplayGain.hxxApeTag.cxxApeTag.hxxBuilder.cxxBuilder.hxxConfig.cxxConfig.hxxFallback.hxxFixString.cxxFixString.hxxFormat.cxxFormat.hxxGenParseName.cxxGeneric.cxxGeneric.hxxHandler.cxxHandler.hxxId3Load.cxxId3Load.hxxId3MusicBrainz.cxxId3MusicBrainz.hxxId3Picture.cxxId3Picture.hxxId3ReplayGain.cxxId3ReplayGain.hxxId3Scan.cxxId3Scan.hxxId3Unique.hxxItem.hxxMask.hxxMixRamp.cxxMixRamp.hxxNames.cParseName.cxxParseName.hxxPool.cxxPool.hxxReplayGain.cxxReplayGain.hxxRiff.cxxRiff.hxxRva2.cxxRva2.hxxSettings.cxxSettings.hxxTable.cxxTable.hxxTag.cxxTag.hxxType.hVisitFallback.hxxVorbisComment.cxxVorbisComment.hxx
thread
unix
util
Alloc.cxxAlloc.hxxBitReverse.cxxBitReverse.hxxByteReverse.cxxByteReverse.hxxCompiler.hDivideString.cxxDivideString.hxxForeignFifoBuffer.hxxFormatString.cxxFormatString.hxxLazyRandomEngine.cxxLazyRandomEngine.hxxMimeType.cxxMimeType.hxxOptionDef.hxxOptionParser.cxxOptionParser.hxxPeakBuffer.cxxPeakBuffer.hxxSliceBuffer.hxxStringUtil.cxxStringUtil.hxxStringView.hxxUriExtract.cxxUriExtract.hxxformat.cformat.h
win32
zeroconf
test
ConfigGlue.hxxContainerScan.cxxDumpDatabase.cxxDumpDecoderClient.cxxDumpDecoderClient.hxxMakeTag.hxxNullMixerListener.hxxParseSongFilter.cxxReadApeTags.cxxRunChromaprint.cxxRunCurl.cxxShutdownHandler.cxxShutdownHandler.hxxTestAudioFormat.cxxTestTagSongFilter.cxxWriteFile.cxxdump_playlist.cxxdump_rva2.cxxdump_text_file.cxxread_conf.cxxread_mixer.cxxread_tags.cxxrun_avahi.cxxrun_convert.cxxrun_decoder.cxxrun_encoder.cxxrun_filter.cxxrun_gunzip.cxxrun_gzip.cxxrun_inotify.cxxrun_input.cxxrun_neighbor_explorer.cxxrun_normalize.cxxrun_output.cxxrun_resolver.cxxrun_storage.cxxsoftware_volume.cxxtest_byte_reverse.cxxtest_pcm_channels.cxxtest_pcm_dither.cxxtest_pcm_export.cxxtest_pcm_format.cxxtest_pcm_interleave.cxxtest_pcm_mix.cxxtest_pcm_pack.cxxtest_pcm_util.hxxtest_pcm_volume.cxxtest_vorbis_encoder.cxxvisit_archive.cxx
2
AUTHORS
2
AUTHORS
@@ -1,5 +1,5 @@
|
||||
Music Player Daemon - http://www.musicpd.org
|
||||
Copyright 2003-2020 The Music Player Daemon Project
|
||||
Copyright 2003-2021 The Music Player Daemon Project
|
||||
|
||||
The following people have contributed code to MPD:
|
||||
|
||||
|
37
NEWS
37
NEWS
@@ -1,3 +1,40 @@
|
||||
ver 0.22.6 (2021/02/16)
|
||||
* fix missing tags on songs in queue
|
||||
|
||||
ver 0.22.5 (2021/02/15)
|
||||
* protocol
|
||||
- error for malformed ranges instead of ignoring silently
|
||||
- better error message for open-ended range with "move"
|
||||
* database
|
||||
- simple: fix missing CUE sheet metadata in "addid" command
|
||||
* tags
|
||||
- id: translate TPE3 to Conductor, not Performer
|
||||
* archive
|
||||
- iso9660: another fix for unaligned reads
|
||||
* output
|
||||
- httpd: error handling on Windows improved
|
||||
- pulse: fix deadlock with "always_on"
|
||||
* Windows:
|
||||
- enable https:// support (via Schannel)
|
||||
* Android
|
||||
- work around "Permission denied" on mpd.conf
|
||||
|
||||
ver 0.22.4 (2021/01/21)
|
||||
* protocol
|
||||
- add command "binarylimit" to allow larger chunk sizes
|
||||
- fix "readpicture" on 32 bit machines
|
||||
- show duration and tags of songs in virtual playlist (CUE) folders
|
||||
* storage
|
||||
- curl: fix several WebDAV protocol bugs
|
||||
* decoder
|
||||
- dsdiff: apply padding to odd-sized chunks
|
||||
* filter
|
||||
- ffmpeg: detect the output sample format
|
||||
* output
|
||||
- moveoutput: fix always_on and tag lost on move
|
||||
* Android
|
||||
- enable https:// support (via OpenSSL)
|
||||
|
||||
ver 0.22.3 (2020/11/06)
|
||||
* playlist
|
||||
- add option "as_directory", making CUE file expansion optional
|
||||
|
@@ -2,10 +2,10 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.musicpd"
|
||||
android:installLocation="auto"
|
||||
android:versionCode="51"
|
||||
android:versionName="0.22.1">
|
||||
android:versionCode="54"
|
||||
android:versionName="0.22.6">
|
||||
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/>
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
|
||||
|
||||
<uses-feature android:name="android.software.leanback"
|
||||
android:required="false" />
|
||||
@@ -19,6 +19,7 @@
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
|
||||
<application android:allowBackup="true"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:icon="@drawable/icon"
|
||||
android:banner="@drawable/icon"
|
||||
android:label="@string/app_name">
|
||||
|
@@ -103,7 +103,7 @@ class AndroidNdkToolchain:
|
||||
llvm_bin = os.path.join(llvm_path, 'bin')
|
||||
self.cc = os.path.join(llvm_bin, 'clang')
|
||||
self.cxx = os.path.join(llvm_bin, 'clang++')
|
||||
common_flags += ' -target ' + llvm_triple + ' -integrated-as -gcc-toolchain ' + toolchain_path
|
||||
common_flags += ' -target ' + llvm_triple + ' -gcc-toolchain ' + toolchain_path
|
||||
|
||||
common_flags += ' -fvisibility=hidden -fdata-sections -ffunction-sections'
|
||||
|
||||
@@ -172,6 +172,7 @@ thirdparty_libs = [
|
||||
wildmidi,
|
||||
gme,
|
||||
ffmpeg,
|
||||
openssl,
|
||||
curl,
|
||||
libexpat,
|
||||
libnfs,
|
||||
|
@@ -5,8 +5,8 @@ android_ndk = get_option('android_ndk')
|
||||
android_sdk = get_option('android_sdk')
|
||||
android_abi = get_option('android_abi')
|
||||
|
||||
android_sdk_build_tools_version = '27.0.0'
|
||||
android_sdk_platform = 'android-23'
|
||||
android_sdk_build_tools_version = '29.0.3'
|
||||
android_sdk_platform = 'android-29'
|
||||
|
||||
android_build_tools_dir = join_paths(android_sdk, 'build-tools', android_sdk_build_tools_version)
|
||||
android_sdk_platform_dir = join_paths(android_sdk, 'platforms', android_sdk_platform)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,6 +1,5 @@
|
||||
|
||||
/*
|
||||
* Copyright (C) 2003-2014 The Music Player Daemon Project
|
||||
* Copyright (C) 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -38,7 +38,7 @@ author = 'Max Kellermann'
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.22.3'
|
||||
version = '0.22.6'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = version
|
||||
|
||||
|
@@ -68,11 +68,11 @@ There are two active branches in the git repository:
|
||||
|
||||
- the "unstable" branch called ``master`` where new features are
|
||||
merged. This will become the next major release eventually.
|
||||
- the "stable" branch (currently called ``v0.21.x``) where only bug
|
||||
- the "stable" branch (currently called ``v0.22.x``) where only bug
|
||||
fixes are merged.
|
||||
|
||||
Once :program:`MPD` 0.22 is released, a new branch called ``v0.22.x``
|
||||
will be created for 0.22 bug-fix releases; after that, ``v0.21.x``
|
||||
Once :program:`MPD` 0.23 is released, a new branch called ``v0.23.x``
|
||||
will be created for 0.23 bug-fix releases; after that, ``v0.22.x``
|
||||
will eventually cease to be maintained.
|
||||
|
||||
After bug fixes have been added to the "stable" branch, it will be
|
||||
|
@@ -13,7 +13,7 @@ DESCRIPTION
|
||||
MPD is a daemon for playing music. Music is played through the configured audio output(s) (which are generally local, but can be remote). The daemon stores info about all available music, and this info can be easily searched and retrieved. Player control, info retrieval, and playlist management can all be managed remotely.
|
||||
|
||||
MPD searches for a config file in ``$XDG_CONFIG_HOME/mpd/mpd.conf``
|
||||
then ``~/.mpdconf`` then ``/etc/mpd.conf`` or uses ``CONF_FILE``.
|
||||
then ``~/.mpdconf`` then ``~/.mpd/mpd.conf`` then ``/etc/mpd.conf`` or uses ``CONF_FILE``.
|
||||
|
||||
Read more about MPD at http://www.musicpd.org/
|
||||
|
||||
@@ -53,8 +53,8 @@ OPTIONS
|
||||
FILES
|
||||
-----
|
||||
|
||||
:file:`~/.mpdconf`
|
||||
User configuration file.
|
||||
:file:`$XDG_CONFIG_HOME/mpd/mpd.conf`
|
||||
User configuration file (usually :file:`~/.config/mpd/mpd.conf`).
|
||||
|
||||
:file:`/etc/mpd.conf`
|
||||
Global configuration file.
|
||||
|
@@ -11,24 +11,34 @@ not specified on the command line, MPD first searches for it at
|
||||
:file:`$XDG_CONFIG_HOME/mpd/mpd.conf` then at :file:`~/.mpdconf` then
|
||||
at :file:`~/.mpd/mpd.conf` and then in :file:`/etc/mpd.conf`.
|
||||
|
||||
Lines beginning with a :samp:`#` character are comments. All other
|
||||
non-empty lines specify parameters and their values. These lines
|
||||
contain the parameter name and parameter value (surrounded by double
|
||||
quotes) separated by whitespace (either tabs or spaces). For
|
||||
example::
|
||||
Each line in the configuration file contains a setting name and its value, e.g.:
|
||||
|
||||
parameter "value"
|
||||
:code:`connection_timeout "5"`
|
||||
|
||||
The exception to this rule is the audio_output parameter, which is of
|
||||
the form::
|
||||
For settings which specify a filesystem path, the tilde is expanded:
|
||||
|
||||
:code:`music_directory "~/Music"`
|
||||
|
||||
Some of the settings are grouped in blocks with curly braces, e.g. per-plugin settings:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
audio_output {
|
||||
parameter1 "value"
|
||||
parameter2 "value"
|
||||
type "alsa"
|
||||
name "My ALSA output"
|
||||
device "iec958:CARD=Intel,DEV=0"
|
||||
mixer_control "PCM"
|
||||
}
|
||||
|
||||
The :code:`include` directive can be used to include settings from
|
||||
another file; the given file name is relative to the current file:
|
||||
|
||||
Parameters that take a file or directory as an argument should use absolute paths.
|
||||
:code:`include "other.conf"`
|
||||
|
||||
You can use include_optional instead if you want the included file to be
|
||||
optional; the directive will be ignored if the file does not exist:
|
||||
|
||||
:code:`include_optional "may_not_exist.conf"`
|
||||
|
||||
See :file:`docs/mpdconf.example` in the source tarball for an example
|
||||
configuration file.
|
||||
@@ -38,7 +48,7 @@ Please read the MPD user manual for a complete configuration guide:
|
||||
http://www.musicpd.org/doc/user/
|
||||
|
||||
|
||||
REQUIRED PARAMETERS
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
|
||||
db_file <file>
|
||||
@@ -47,9 +57,6 @@ db_file <file>
|
||||
log_file <file>
|
||||
This specifies where the log file should be located. The special value "syslog" makes MPD use the local syslog daemon.
|
||||
|
||||
OPTIONAL PARAMETERS
|
||||
-------------------
|
||||
|
||||
sticker_file <file>
|
||||
The location of the sticker database. This is a database which manages
|
||||
dynamic information attached to songs.
|
||||
@@ -83,7 +90,7 @@ user <username>
|
||||
port <port>
|
||||
This specifies the port that mpd listens on. The default is 6600.
|
||||
|
||||
log_level <default, secure, or verbose>
|
||||
log_level <level>
|
||||
Suppress all messages below the given threshold. The following
|
||||
log levels are available:
|
||||
|
||||
@@ -123,7 +130,8 @@ audio_output
|
||||
|
||||
replaygain <off or album or track or auto>
|
||||
If specified, mpd will adjust the volume of songs played using ReplayGain
|
||||
tags (see http://www.replaygain.org/). Setting this to "album" will
|
||||
tags (see https://wiki.hydrogenaud.io/index.php?title=Replaygain).
|
||||
Setting this to "album" will
|
||||
adjust volume using the album's ReplayGain tags, while setting it to "track"
|
||||
will adjust it using the track ReplayGain tags. "auto" uses the track
|
||||
ReplayGain tags if random play is activated otherwise the album ReplayGain
|
||||
@@ -190,8 +198,8 @@ mixer_type <hardware, software or none>
|
||||
FILES
|
||||
-----
|
||||
|
||||
:file:`~/.mpdconf`
|
||||
User configuration file.
|
||||
:file:`$XDG_CONFIG_HOME/mpd/mpd.conf`
|
||||
User configuration file (usually :file:`~/.config/mpd/mpd.conf`).
|
||||
|
||||
:file:`/etc/mpd.conf`
|
||||
Global configuration file.
|
||||
|
@@ -5,7 +5,7 @@
|
||||
# Files and directories #######################################################
|
||||
#
|
||||
# This setting controls the top directory which MPD will search to discover the
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# available audio files and add them to the daemon's online database. This
|
||||
# setting defaults to the XDG directory, otherwise the music directory will be
|
||||
# be disabled and audio files will only be accepted over ipc socket (using
|
||||
# file:// protocol) or streaming files over an accepted protocol.
|
||||
@@ -13,20 +13,20 @@
|
||||
#music_directory "~/music"
|
||||
#
|
||||
# This setting sets the MPD internal playlist directory. The purpose of this
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# directory is storage for playlists created by MPD. The server will use
|
||||
# playlist files not created by the server but only if they are in the MPD
|
||||
# format. This setting defaults to playlist saving being disabled.
|
||||
#
|
||||
#playlist_directory "~/.mpd/playlists"
|
||||
#
|
||||
# This setting sets the location of the MPD database. This file is used to
|
||||
# load the database at server start up and store the database while the
|
||||
# load the database at server start up and store the database while the
|
||||
# server is not up. This setting defaults to disabled which will allow
|
||||
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
||||
# files over an accepted protocol.
|
||||
#
|
||||
#db_file "~/.mpd/database"
|
||||
#
|
||||
#
|
||||
# These settings are the locations for the daemon log files for the daemon.
|
||||
# These logs are great for troubleshooting, depending on your log_level
|
||||
# settings.
|
||||
@@ -44,7 +44,7 @@
|
||||
#
|
||||
# This setting sets the location of the file which contains information about
|
||||
# most variables to get MPD back into the same general shape it was in before
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# it was brought down. This setting is disabled by default and the server
|
||||
# state will be reset on server start up.
|
||||
#
|
||||
#state_file "~/.mpd/state"
|
||||
@@ -74,7 +74,7 @@
|
||||
#group "nogroup"
|
||||
#
|
||||
# This setting sets the address for the daemon to listen on. Careful attention
|
||||
# should be paid if this is assigned to anything other then the default, any.
|
||||
# should be paid if this is assigned to anything other than the default, any.
|
||||
# This setting can deny access to control of the daemon. Not effective if
|
||||
# systemd socket activiation is in use.
|
||||
#
|
||||
@@ -90,7 +90,8 @@
|
||||
#port "6600"
|
||||
#
|
||||
# Suppress all messages below the given threshold. Use "verbose" for
|
||||
# troubleshooting.
|
||||
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
|
||||
# "warning" and "error".
|
||||
#
|
||||
#log_level "notice"
|
||||
#
|
||||
@@ -113,7 +114,7 @@
|
||||
# the other supported tags:
|
||||
#metadata_to_use "+comment"
|
||||
#
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# This setting enables automatic update of MPD's database when files in
|
||||
# music_directory are changed.
|
||||
#
|
||||
#auto_update "yes"
|
||||
@@ -128,7 +129,7 @@
|
||||
|
||||
# Symbolic link behavior ######################################################
|
||||
#
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# If this setting is set to "yes", MPD will discover audio files by following
|
||||
# symbolic links outside of the configured music_directory.
|
||||
#
|
||||
#follow_outside_symlinks "yes"
|
||||
@@ -163,7 +164,7 @@
|
||||
#
|
||||
#password "password@read,add,control,admin"
|
||||
#
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
# This setting specifies the permissions a user has who has not yet logged in.
|
||||
#
|
||||
#default_permissions "read,add,control,admin"
|
||||
#
|
||||
@@ -172,7 +173,18 @@
|
||||
|
||||
# Database #######################################################################
|
||||
#
|
||||
|
||||
# An example of a database section instead of the old 'db_file' setting.
|
||||
# It enables mounting other storages into the music directory.
|
||||
#
|
||||
#database {
|
||||
# plugin "simple"
|
||||
# path "~/.local/share/mpd/db
|
||||
# cache_directory "~/.local/share/mpd/cache"
|
||||
#}
|
||||
#
|
||||
# An example of database config for a sattelite setup
|
||||
#
|
||||
#music_directory "nfs://fileserver.local/srv/mp3"
|
||||
#database {
|
||||
# plugin "proxy"
|
||||
# host "other.mpd.host"
|
||||
@@ -181,7 +193,6 @@
|
||||
|
||||
# Input #######################################################################
|
||||
#
|
||||
|
||||
input {
|
||||
plugin "curl"
|
||||
# proxy "proxy.isp.com:8080"
|
||||
@@ -194,8 +205,8 @@ input {
|
||||
|
||||
# Audio Output ################################################################
|
||||
#
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# MPD supports various audio output types, as well as playing through multiple
|
||||
# audio outputs at the same time, through multiple audio_output settings
|
||||
# blocks. Setting this block is optional, though the server will only attempt
|
||||
# autodetection for one sound card.
|
||||
#
|
||||
@@ -361,7 +372,8 @@ input {
|
||||
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
||||
# chooses between "track" and "album" depending on the current state of
|
||||
# random playback. If random playback is enabled then "track" mode is used.
|
||||
# See <http://www.replaygain.org> for more details about ReplayGain.
|
||||
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
|
||||
# more details about ReplayGain.
|
||||
# This setting is off by default.
|
||||
#
|
||||
#replaygain "album"
|
||||
@@ -386,7 +398,7 @@ input {
|
||||
#replaygain_limit "yes"
|
||||
#
|
||||
# This setting enables on-the-fly normalization volume adjustment. This will
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# result in the volume of all playing audio to be adjusted so the output has
|
||||
# equal "loudness". This setting is disabled by default.
|
||||
#
|
||||
#volume_normalization "no"
|
||||
@@ -395,7 +407,7 @@ input {
|
||||
|
||||
# Character Encoding ##########################################################
|
||||
#
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# If file or directory names do not display correctly for your locale then you
|
||||
# may need to modify this setting.
|
||||
#
|
||||
#filesystem_charset "UTF-8"
|
||||
|
@@ -378,10 +378,14 @@ flac
|
||||
|
||||
Decodes FLAC files using libFLAC.
|
||||
|
||||
.. _decoder_dsdiff:
|
||||
|
||||
dsdiff
|
||||
------
|
||||
|
||||
Decodes DFF files containing DSDIFF data (e.g. SACD rips).
|
||||
Decodes DSDIFF (`Direct Stream Digital Interchange File Format
|
||||
<http://www.sonicstudio.com/pdf/dsd/DSDIFF_1.5_Spec.pdf>`_) files
|
||||
(:file:`*.dff`). These contain :ref:`DSD <dsd>` instead of PCM.
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 80
|
||||
@@ -392,10 +396,14 @@ Decodes DFF files containing DSDIFF data (e.g. SACD rips).
|
||||
* - **lsbitfirst yes|no**
|
||||
- Decode the least significant bit first. Default is no.
|
||||
|
||||
.. _decoder_dsf:
|
||||
|
||||
dsf
|
||||
---
|
||||
|
||||
Decodes DSF files containing DSDIFF data (e.g. SACD rips).
|
||||
Decodes DSF
|
||||
(<https://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf>)
|
||||
files (:file:`*.dsf`). These contain :ref:`DSD <dsd>` instead of PCM.
|
||||
|
||||
fluidsynth
|
||||
----------
|
||||
@@ -755,6 +763,10 @@ Valid quality values for libsoxr:
|
||||
|
||||
If the quality is set to custom also the following settings are available:
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 80
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
* - **precision**
|
||||
|
229
doc/protocol.rst
229
doc/protocol.rst
@@ -69,11 +69,14 @@ that, the specified number of bytes of binary data follows, then a
|
||||
newline, and finally the ``OK`` line.
|
||||
|
||||
If the object to be transmitted is large, the server may choose a
|
||||
reasonable chunk size and transmit only a portion. Usually, the
|
||||
response also contains a ``size`` line which specifies the total
|
||||
(uncropped) size, and the command usually has a way to specify an
|
||||
offset into the object; this way, the client can copy the whole file
|
||||
without blocking the connection for too long.
|
||||
reasonable chunk size and transmit only a portion. The maximum chunk
|
||||
size can be changed by clients with the :ref:`binarylimit
|
||||
<command_binarylimit>` command.
|
||||
|
||||
Usually, the response also contains a ``size`` line which specifies
|
||||
the total (uncropped) size, and the command usually has a way to
|
||||
specify an offset into the object; this way, the client can copy the
|
||||
whole file without blocking the connection for too long.
|
||||
|
||||
Example::
|
||||
|
||||
@@ -281,6 +284,7 @@ The following tags are supported by :program:`MPD`:
|
||||
* **name**: a name for this song. This is not the song title. The exact meaning of this tag is not well-defined. It is often used by badly configured internet radio stations with broken tags to squeeze both the artist name and the song title in one tag.
|
||||
* **genre**: the music genre.
|
||||
* **date**: the song's release date. This is usually a 4-digit year.
|
||||
* **originaldate**: the song's original release date.
|
||||
* **composer**: the artist who composed the song.
|
||||
* **performer**: the artist who performed the song.
|
||||
* **conductor**: the conductor who conducted the song.
|
||||
@@ -383,10 +387,14 @@ Command reference
|
||||
Querying :program:`MPD`'s status
|
||||
================================
|
||||
|
||||
.. _command_clearerror:
|
||||
|
||||
:command:`clearerror`
|
||||
Clears the current error message in status (this is also
|
||||
accomplished by any command that starts playback).
|
||||
|
||||
.. _command_currentsong:
|
||||
|
||||
:command:`currentsong`
|
||||
Displays the song info of the current song (same song that
|
||||
is identified in status). Information about the current song
|
||||
@@ -407,7 +415,9 @@ Querying :program:`MPD`'s status
|
||||
- ``update``: a database update has started or finished. If the database was modified during the update, the ``database`` event is also emitted.
|
||||
- ``stored_playlist``: a stored playlist has been modified, renamed, created or deleted
|
||||
- ``playlist``: the queue (i.e. the current playlist) has been modified
|
||||
- ``player``: the player has been started, stopped or seeked
|
||||
- ``player``: the player has been started, stopped or seeked or
|
||||
tags of the currently playing song have changed (e.g. received
|
||||
from stream)
|
||||
- ``mixer``: the volume has been changed
|
||||
- ``output``: an audio output has been added, removed or modified (e.g. renamed, enabled or disabled)
|
||||
- ``options``: options like repeat, random, crossfade, replay gain
|
||||
@@ -477,6 +487,8 @@ Querying :program:`MPD`'s status
|
||||
:program:`MPD` versions used to have a "magic" value for
|
||||
"unknown", e.g. ":samp:`volume: -1`".
|
||||
|
||||
.. _command_stats:
|
||||
|
||||
:command:`stats`
|
||||
Displays statistics.
|
||||
|
||||
@@ -492,17 +504,25 @@ Querying :program:`MPD`'s status
|
||||
Playback options
|
||||
================
|
||||
|
||||
.. _command_consume:
|
||||
|
||||
:command:`consume {STATE}` [#since_0_15]_
|
||||
Sets consume state to ``STATE``,
|
||||
``STATE`` should be 0 or 1.
|
||||
When consume is activated, each song played is removed from playlist.
|
||||
|
||||
.. _command_crossfade:
|
||||
|
||||
:command:`crossfade {SECONDS}`
|
||||
Sets crossfading between songs.
|
||||
|
||||
.. _command_mixrampdb:
|
||||
|
||||
:command:`mixrampdb {deciBels}`
|
||||
Sets the threshold at which songs will be overlapped. Like crossfading but doesn't fade the track volume, just overlaps. The songs need to have MixRamp tags added by an external tool. 0dB is the normalized maximum volume so use negative values, I prefer -17dB. In the absence of mixramp tags crossfading will be used. See http://sourceforge.net/projects/mixramp
|
||||
|
||||
.. _command_mixrampdelay:
|
||||
|
||||
:command:`mixrampdelay {SECONDS}`
|
||||
Additional time subtracted from the overlap calculated by mixrampdb. A value of "nan" disables MixRamp overlapping and falls back to crossfading.
|
||||
|
||||
@@ -512,6 +532,8 @@ Playback options
|
||||
Sets random state to ``STATE``,
|
||||
``STATE`` should be 0 or 1.
|
||||
|
||||
.. _command_repeat:
|
||||
|
||||
:command:`repeat {STATE}`
|
||||
Sets repeat state to ``STATE``,
|
||||
``STATE`` should be 0 or 1.
|
||||
@@ -522,12 +544,16 @@ Playback options
|
||||
Sets volume to ``VOL``, the range of
|
||||
volume is 0-100.
|
||||
|
||||
.. _command_single:
|
||||
|
||||
:command:`single {STATE}` [#since_0_15]_
|
||||
Sets single state to ``STATE``,
|
||||
``STATE`` should be ``0``, ``1`` or ``oneshot`` [#since_0_20]_.
|
||||
``STATE`` should be ``0``, ``1`` or ``oneshot`` [#since_0_21]_.
|
||||
When single is activated, playback is stopped after current song, or
|
||||
song is repeated if the 'repeat' mode is enabled.
|
||||
|
||||
.. _command_replay_gain_mode:
|
||||
|
||||
:command:`replay_gain_mode {MODE}` [#since_0_16]_
|
||||
Sets the replay gain mode. One of
|
||||
``off``,
|
||||
@@ -541,11 +567,15 @@ Playback options
|
||||
This command triggers the
|
||||
``options`` idle event.
|
||||
|
||||
.. _command_replay_gain_status:
|
||||
|
||||
:command:`replay_gain_status`
|
||||
Prints replay gain options. Currently, only the
|
||||
variable ``replay_gain_mode`` is
|
||||
returned.
|
||||
|
||||
.. _command_volume:
|
||||
|
||||
:command:`volume {CHANGE}`
|
||||
Changes volume by amount ``CHANGE``.
|
||||
Deprecated, use :ref:`setvol <command_setvol>` instead.
|
||||
@@ -553,41 +583,59 @@ Playback options
|
||||
Controlling playback
|
||||
====================
|
||||
|
||||
.. _command_next:
|
||||
|
||||
:command:`next`
|
||||
Plays next song in the playlist.
|
||||
|
||||
.. _command_pause:
|
||||
|
||||
:command:`pause {STATE}`
|
||||
Pause or resume playback. Pass :samp:`1` to pause playback or
|
||||
:samp:`0` to resume playback. Without the parameter, the pause
|
||||
state is toggled.
|
||||
|
||||
.. _command_play:
|
||||
|
||||
:command:`play [SONGPOS]`
|
||||
Begins playing the playlist at song number
|
||||
``SONGPOS``.
|
||||
|
||||
.. _command_playid:
|
||||
|
||||
:command:`playid [SONGID]`
|
||||
Begins playing the playlist at song
|
||||
``SONGID``.
|
||||
|
||||
.. _command_previous:
|
||||
|
||||
:command:`previous`
|
||||
Plays previous song in the playlist.
|
||||
|
||||
.. _command_seek:
|
||||
|
||||
:command:`seek {SONGPOS} {TIME}`
|
||||
Seeks to the position ``TIME`` (in
|
||||
seconds; fractions allowed) of entry
|
||||
``SONGPOS`` in the playlist.
|
||||
|
||||
.. _command_seekid:
|
||||
|
||||
:command:`seekid {SONGID} {TIME}`
|
||||
Seeks to the position ``TIME`` (in
|
||||
seconds; fractions allowed) of song
|
||||
``SONGID``.
|
||||
|
||||
.. _command_seekcur:
|
||||
|
||||
:command:`seekcur {TIME}`
|
||||
Seeks to the position ``TIME`` (in
|
||||
seconds; fractions allowed) within the current song. If
|
||||
prefixed by ``+`` or ``-``, then the time is relative to the
|
||||
current playing position.
|
||||
|
||||
.. _command_stop:
|
||||
|
||||
:command:`stop`
|
||||
Stops playing.
|
||||
|
||||
@@ -622,11 +670,20 @@ client can always be sure the correct song is being used.
|
||||
Many commands come in two flavors, one for each address type.
|
||||
Whenever possible, ids should be used.
|
||||
|
||||
.. _command_add:
|
||||
|
||||
:command:`add {URI}`
|
||||
Adds the file ``URI`` to the playlist
|
||||
(directories add recursively). ``URI``
|
||||
can also be a single file.
|
||||
|
||||
Clients that are connected via local socket may add arbitrary
|
||||
local files (URI is an absolute path). Exmaple::
|
||||
|
||||
add "/home/foo/Music/bar.ogg"
|
||||
|
||||
.. _command_addid:
|
||||
|
||||
:command:`addid {URI} [POSITION]`
|
||||
Adds a song to the playlist (non-recursive) and returns the
|
||||
song id. ``URI`` is always a single file or URL. For example::
|
||||
@@ -635,6 +692,8 @@ Whenever possible, ids should be used.
|
||||
Id: 999
|
||||
OK
|
||||
|
||||
.. _command_clear:
|
||||
|
||||
:command:`clear`
|
||||
Clears the queue.
|
||||
|
||||
@@ -643,15 +702,21 @@ Whenever possible, ids should be used.
|
||||
:command:`delete [{POS} | {START:END}]`
|
||||
Deletes a song from the playlist.
|
||||
|
||||
.. _command_deleteid:
|
||||
|
||||
:command:`deleteid {SONGID}`
|
||||
Deletes the song ``SONGID`` from the
|
||||
playlist
|
||||
|
||||
.. _command_move:
|
||||
|
||||
:command:`move [{FROM} | {START:END}] {TO}`
|
||||
Moves the song at ``FROM`` or range of songs
|
||||
at ``START:END`` [#since_0_15]_ to ``TO``
|
||||
in the playlist.
|
||||
|
||||
.. _command_moveid:
|
||||
|
||||
:command:`moveid {FROM} {TO}`
|
||||
Moves the song with ``FROM`` (songid) to
|
||||
``TO`` (playlist index) in the
|
||||
@@ -659,6 +724,8 @@ Whenever possible, ids should be used.
|
||||
is relative to the current song in the playlist (if
|
||||
there is one).
|
||||
|
||||
.. _command_playlist:
|
||||
|
||||
:command:`playlist`
|
||||
|
||||
Displays the queue.
|
||||
@@ -666,10 +733,14 @@ Whenever possible, ids should be used.
|
||||
Do not use this, instead use :ref:`playlistinfo
|
||||
<command_playlistinfo>`.
|
||||
|
||||
:command:`playlistfind {TAG} {NEEDLE}`
|
||||
.. _command_playlistfind:
|
||||
|
||||
:command:`playlistfind {FILTER}`
|
||||
Finds songs in the queue with strict
|
||||
matching.
|
||||
|
||||
.. _command_playlistid:
|
||||
|
||||
:command:`playlistid {SONGID}`
|
||||
Displays a list of songs in the playlist.
|
||||
``SONGID`` is optional and specifies a
|
||||
@@ -683,10 +754,14 @@ Whenever possible, ids should be used.
|
||||
``SONGPOS`` or the range of songs
|
||||
``START:END`` [#since_0_15]_
|
||||
|
||||
:command:`playlistsearch {TAG} {NEEDLE}`
|
||||
.. _command_playlistsearch:
|
||||
|
||||
:command:`playlistsearch {FILTER}`
|
||||
Searches case-insensitively for partial matches in the
|
||||
queue.
|
||||
|
||||
.. _command_plchanges:
|
||||
|
||||
:command:`plchanges {VERSION} [START:END]`
|
||||
Displays changed songs currently in the playlist since
|
||||
``VERSION``. Start and end positions may
|
||||
@@ -696,6 +771,8 @@ Whenever possible, ids should be used.
|
||||
To detect songs that were deleted at the end of the
|
||||
playlist, use playlistlength returned by status command.
|
||||
|
||||
.. _command_plchangesposid:
|
||||
|
||||
:command:`plchangesposid {VERSION} [START:END]`
|
||||
Displays changed songs currently in the playlist since
|
||||
``VERSION``. This function only
|
||||
@@ -721,6 +798,8 @@ Whenever possible, ids should be used.
|
||||
Same as :ref:`priod <command_prio>`,
|
||||
but address the songs with their id.
|
||||
|
||||
.. _command_rangeid:
|
||||
|
||||
:command:`rangeid {ID} {START:END}` [#since_0_19]_
|
||||
Since :program:`MPD`
|
||||
0.19 Specifies the portion of the
|
||||
@@ -731,19 +810,27 @@ Whenever possible, ids should be used.
|
||||
range, play everything". A song that is currently
|
||||
playing cannot be manipulated this way.
|
||||
|
||||
.. _command_shuffle:
|
||||
|
||||
:command:`shuffle [START:END]`
|
||||
Shuffles the queue.
|
||||
``START:END`` is optional and specifies
|
||||
a range of songs.
|
||||
|
||||
.. _command_swap:
|
||||
|
||||
:command:`swap {SONG1} {SONG2}`
|
||||
Swaps the positions of ``SONG1`` and
|
||||
``SONG2``.
|
||||
|
||||
.. _command_swapid:
|
||||
|
||||
:command:`swapid {SONG1} {SONG2}`
|
||||
Swaps the positions of ``SONG1`` and
|
||||
``SONG2`` (both song ids).
|
||||
|
||||
.. _command_addtagid:
|
||||
|
||||
:command:`addtagid {SONGID} {TAG} {VALUE}`
|
||||
Adds a tag to the specified song. Editing song tags is
|
||||
only possible for remote songs. This change is
|
||||
@@ -751,6 +838,8 @@ Whenever possible, ids should be used.
|
||||
the server, and the data is gone when the song gets
|
||||
removed from the queue.
|
||||
|
||||
.. _command_cleartagid:
|
||||
|
||||
:command:`cleartagid {SONGID} [TAG]`
|
||||
Removes tags from the specified song. If
|
||||
``TAG`` is not specified, then all tag
|
||||
@@ -772,14 +861,20 @@ playlists in arbitrary location (absolute path including the suffix;
|
||||
allowed only for clients that are connected via local socket), or
|
||||
remote playlists (absolute URI with a supported scheme).
|
||||
|
||||
.. _command_listplaylist:
|
||||
|
||||
:command:`listplaylist {NAME}`
|
||||
Lists the songs in the playlist. Playlist plugins are
|
||||
supported.
|
||||
|
||||
.. _command_listplaylistinfo:
|
||||
|
||||
:command:`listplaylistinfo {NAME}`
|
||||
Lists the songs with metadata in the playlist. Playlist
|
||||
plugins are supported.
|
||||
|
||||
.. _command_listplaylists:
|
||||
|
||||
:command:`listplaylists`
|
||||
Prints a list of the playlist directory.
|
||||
After each playlist name the server sends its last
|
||||
@@ -795,27 +890,39 @@ remote playlists (absolute URI with a supported scheme).
|
||||
plugins are supported. A range may be specified to load
|
||||
only a part of the playlist.
|
||||
|
||||
.. _command_playlistadd:
|
||||
|
||||
:command:`playlistadd {NAME} {URI}`
|
||||
Adds ``URI`` to the playlist
|
||||
`NAME.m3u`.
|
||||
`NAME.m3u` will be created if it does
|
||||
not exist.
|
||||
|
||||
.. _command_playlistclear:
|
||||
|
||||
:command:`playlistclear {NAME}`
|
||||
Clears the playlist `NAME.m3u`.
|
||||
|
||||
.. _command_playlistdelete:
|
||||
|
||||
:command:`playlistdelete {NAME} {SONGPOS}`
|
||||
Deletes ``SONGPOS`` from the
|
||||
playlist `NAME.m3u`.
|
||||
|
||||
.. _command_playlistmove:
|
||||
|
||||
:command:`playlistmove {NAME} {FROM} {TO}`
|
||||
Moves the song at position ``FROM`` in
|
||||
the playlist `NAME.m3u` to the
|
||||
position ``TO``.
|
||||
|
||||
.. _command_rename:
|
||||
|
||||
:command:`rename {NAME} {NEW_NAME}`
|
||||
Renames the playlist `NAME.m3u` to `NEW_NAME.m3u`.
|
||||
|
||||
.. _command_rm:
|
||||
|
||||
:command:`rm {NAME}`
|
||||
Removes the playlist `NAME.m3u` from
|
||||
the playlist directory.
|
||||
@@ -829,6 +936,8 @@ remote playlists (absolute URI with a supported scheme).
|
||||
The music database
|
||||
==================
|
||||
|
||||
.. _command_albumart:
|
||||
|
||||
:command:`albumart {URI} {OFFSET}`
|
||||
Locate album art for the given song and return a chunk of an album
|
||||
art image file at offset ``OFFSET``.
|
||||
@@ -850,6 +959,8 @@ The music database
|
||||
<8192 bytes>
|
||||
OK
|
||||
|
||||
.. _command_count:
|
||||
|
||||
:command:`count {FILTER} [group {GROUPTYPE}]`
|
||||
Count the number of songs and their total playtime in
|
||||
the database matching ``FILTER`` (see
|
||||
@@ -872,6 +983,8 @@ The music database
|
||||
don't have this group tag. It exists only if at least one such song is
|
||||
found.
|
||||
|
||||
.. _command_getfingerprint:
|
||||
|
||||
:command:`getfingerprint {URI}`
|
||||
|
||||
Calculate the song's audio fingerprint. Example (abbreviated fingerprint)::
|
||||
@@ -962,6 +1075,8 @@ The music database
|
||||
:program:`MPD` whenever you need
|
||||
something.
|
||||
|
||||
.. _command_listfiles:
|
||||
|
||||
:command:`listfiles {URI}`
|
||||
Lists the contents of the directory
|
||||
``URI``, including files are not
|
||||
@@ -998,6 +1113,8 @@ The music database
|
||||
use this command to read the tags of an arbitrary local
|
||||
file (URI is an absolute path).
|
||||
|
||||
.. _command_readcomments:
|
||||
|
||||
:command:`readcomments {URI}`
|
||||
Read "comments" (i.e. key-value pairs) from the file
|
||||
specified by "URI". This "URI" can be a path relative
|
||||
@@ -1014,6 +1131,8 @@ The music database
|
||||
decoder plugins support it. For example, on Ogg files,
|
||||
this lists the Vorbis comments.
|
||||
|
||||
.. _command_readpicture:
|
||||
|
||||
:command:`readpicture {URI} {OFFSET}`
|
||||
Locate a picture for the given song and return a chunk of the
|
||||
image file at offset ``OFFSET``. This is usually implemented by
|
||||
@@ -1055,6 +1174,8 @@ The music database
|
||||
|
||||
Parameters have the same meaning as for :ref:`search <command_search>`.
|
||||
|
||||
.. _command_searchaddpl:
|
||||
|
||||
:command:`searchaddpl {NAME} {FILTER} [sort {TYPE}] [window {START:END}]`
|
||||
Search the database for songs matching
|
||||
``FILTER`` (see :ref:`Filters <filter_syntax>`) and add them to
|
||||
@@ -1080,6 +1201,8 @@ The music database
|
||||
job id in the :ref:`status <command_status>`
|
||||
response.
|
||||
|
||||
.. _command_rescan:
|
||||
|
||||
:command:`rescan [URI]`
|
||||
Same as :ref:`update <command_update>`,
|
||||
but also rescans unmodified files.
|
||||
@@ -1106,11 +1229,15 @@ only inside the :program:`MPD` process.
|
||||
|
||||
mount foo nfs://192.168.1.4/export/mp3
|
||||
|
||||
.. _command_unmount:
|
||||
|
||||
:command:`unmount {PATH}`
|
||||
Unmounts the specified path. Example::
|
||||
|
||||
unmount foo
|
||||
|
||||
.. _command_listmounts:
|
||||
|
||||
:command:`listmounts`
|
||||
Queries a list of all mounts. By default, this contains
|
||||
just the configured ``music_directory``.
|
||||
@@ -1123,6 +1250,8 @@ only inside the :program:`MPD` process.
|
||||
storage: nfs://192.168.1.4/export/mp3
|
||||
OK
|
||||
|
||||
.. _command_listneighbors:
|
||||
|
||||
:command:`listneighbors`
|
||||
Queries a list of "neighbors" (e.g. accessible file
|
||||
servers on the local net). Items on that list may be
|
||||
@@ -1158,28 +1287,40 @@ Objects which may have stickers are addressed by their object
|
||||
type ("song" for song objects) and their URI (the path within
|
||||
the database for songs).
|
||||
|
||||
.. _command_sticker_get:
|
||||
|
||||
:command:`sticker get {TYPE} {URI} {NAME}`
|
||||
Reads a sticker value for the specified object.
|
||||
|
||||
.. _command_sticker_set:
|
||||
|
||||
:command:`sticker set {TYPE} {URI} {NAME} {VALUE}`
|
||||
Adds a sticker value to the specified object. If a
|
||||
sticker item with that name already exists, it is
|
||||
replaced.
|
||||
|
||||
.. _command_sticker_delete:
|
||||
|
||||
:command:`sticker delete {TYPE} {URI} [NAME]`
|
||||
Deletes a sticker value from the specified object. If
|
||||
you do not specify a sticker name, all sticker values
|
||||
are deleted.
|
||||
|
||||
.. _command_sticker_list:
|
||||
|
||||
:command:`sticker list {TYPE} {URI}`
|
||||
Lists the stickers for the specified object.
|
||||
|
||||
.. _command_sticker_find:
|
||||
|
||||
:command:`sticker find {TYPE} {URI} {NAME}`
|
||||
Searches the sticker database for stickers with the
|
||||
specified name, below the specified directory (URI).
|
||||
For each matching song, it prints the URI and that one
|
||||
sticker's value.
|
||||
|
||||
.. _command_sticker_find_value:
|
||||
|
||||
:command:`sticker find {TYPE} {URI} {NAME} = {VALUE}`
|
||||
Searches for stickers with the given value.
|
||||
|
||||
@@ -1189,6 +1330,8 @@ the database for songs).
|
||||
Connection settings
|
||||
===================
|
||||
|
||||
.. _command_close:
|
||||
|
||||
:command:`close`
|
||||
Closes the connection to :program:`MPD`.
|
||||
:program:`MPD` will try to send the
|
||||
@@ -1199,6 +1342,8 @@ Connection settings
|
||||
Clients should not use this command; instead, they should just
|
||||
close the socket.
|
||||
|
||||
.. _command_kill:
|
||||
|
||||
:command:`kill`
|
||||
Kills :program:`MPD`.
|
||||
|
||||
@@ -1206,14 +1351,31 @@ Connection settings
|
||||
instead, or better: let your service manager handle :program:`MPD`
|
||||
shutdown (e.g. :command:`systemctl stop mpd`).
|
||||
|
||||
.. _command_password:
|
||||
|
||||
:command:`password {PASSWORD}`
|
||||
This is used for authentication with the server.
|
||||
``PASSWORD`` is simply the plaintext
|
||||
password.
|
||||
|
||||
.. _command_ping:
|
||||
|
||||
:command:`ping`
|
||||
Does nothing but return "OK".
|
||||
|
||||
.. _command_binarylimit:
|
||||
|
||||
:command:`binarylimit SIZE` [#since_0_22_4]_
|
||||
|
||||
Set the maximum :ref:`binary response <binary>` size for the
|
||||
current connection to the specified number of bytes.
|
||||
|
||||
A bigger value means less overhead for transmitting large
|
||||
entities, but it also means that the connection is blocked for a
|
||||
longer time.
|
||||
|
||||
.. _command_tagtypes:
|
||||
|
||||
:command:`tagtypes`
|
||||
Shows a list of available tag types. It is an
|
||||
intersection of the ``metadata_to_use``
|
||||
@@ -1226,21 +1388,29 @@ Connection settings
|
||||
``tagtypes`` sub commands configure this
|
||||
list.
|
||||
|
||||
.. _command_tagtypes_disable:
|
||||
|
||||
:command:`tagtypes disable {NAME...}`
|
||||
Remove one or more tags from the list of tag types the
|
||||
client is interested in. These will be omitted from
|
||||
responses to this client.
|
||||
|
||||
.. _command_tagtypes_enable:
|
||||
|
||||
:command:`tagtypes enable {NAME...}`
|
||||
Re-enable one or more tags from the list of tag types
|
||||
for this client. These will no longer be hidden from
|
||||
responses to this client.
|
||||
|
||||
.. _command_tagtypes_clear:
|
||||
|
||||
:command:`tagtypes clear`
|
||||
Clear the list of tag types this client is interested
|
||||
in. This means that :program:`MPD` will
|
||||
not send any tags to this client.
|
||||
|
||||
.. _command_tagtypes_all:
|
||||
|
||||
:command:`tagtypes all`
|
||||
Announce that this client is interested in all tag
|
||||
types. This is the default setting for new clients.
|
||||
@@ -1255,34 +1425,50 @@ These commands allow a client to inspect and manage
|
||||
MPD process: it has separate queue, player and outputs. A
|
||||
client is assigned to one partition at a time.
|
||||
|
||||
.. _command_partition:
|
||||
|
||||
:command:`partition {NAME}`
|
||||
Switch the client to a different partition.
|
||||
|
||||
.. _command_listpartitions:
|
||||
|
||||
:command:`listpartitions`
|
||||
Print a list of partitions. Each partition starts with
|
||||
a ``partition`` keyword and the
|
||||
partition's name, followed by information about the
|
||||
partition.
|
||||
|
||||
.. _command_newpartition:
|
||||
|
||||
:command:`newpartition {NAME}`
|
||||
Create a new partition.
|
||||
|
||||
.. _command_delpartition:
|
||||
|
||||
:command:`delpartition {NAME}`
|
||||
Delete a partition. The partition must be empty (no connected
|
||||
clients and no outputs).
|
||||
|
||||
.. _command_moveoutput:
|
||||
|
||||
:command:`moveoutput {OUTPUTNAME}`
|
||||
Move an output to the current partition.
|
||||
|
||||
Audio output devices
|
||||
====================
|
||||
|
||||
.. _command_disableoutput:
|
||||
|
||||
:command:`disableoutput {ID}`
|
||||
Turns an output off.
|
||||
|
||||
.. _command_enableoutput:
|
||||
|
||||
:command:`enableoutput {ID}`
|
||||
Turns an output on.
|
||||
|
||||
.. _command_toggleoutput:
|
||||
|
||||
:command:`toggleoutput {ID}`
|
||||
Turns an output on or off, depending on the current
|
||||
state.
|
||||
@@ -1291,7 +1477,7 @@ Audio output devices
|
||||
|
||||
:command:`outputs`
|
||||
Shows information about all outputs.
|
||||
|
||||
|
||||
::
|
||||
|
||||
outputid: 0
|
||||
@@ -1307,6 +1493,8 @@ Audio output devices
|
||||
- ``outputname``: Name of the output. It can be any.
|
||||
- ``outputenabled``: Status of the output. 0 if disabled, 1 if enabled.
|
||||
|
||||
.. _command_outputset:
|
||||
|
||||
:command:`outputset {ID} {NAME} {VALUE}`
|
||||
Set a runtime attribute. These are specific to the
|
||||
output plugin, and supported values are usually printed
|
||||
@@ -1316,6 +1504,8 @@ Audio output devices
|
||||
Reflection
|
||||
==========
|
||||
|
||||
.. _command_config:
|
||||
|
||||
:command:`config`
|
||||
Dumps configuration values that may be interesting for
|
||||
the client. This command is only permitted to "local"
|
||||
@@ -1325,16 +1515,24 @@ Reflection
|
||||
|
||||
- ``music_directory``: The absolute path of the music directory.
|
||||
|
||||
.. _command_commands:
|
||||
|
||||
:command:`commands`
|
||||
Shows which commands the current user has access to.
|
||||
|
||||
.. _command_notcommands:
|
||||
|
||||
:command:`notcommands`
|
||||
Shows which commands the current user does not have
|
||||
access to.
|
||||
|
||||
.. _command_urlhandlers:
|
||||
|
||||
:command:`urlhandlers`
|
||||
Gets a list of available URL handlers.
|
||||
|
||||
.. _command_decoders:
|
||||
|
||||
:command:`decoders`
|
||||
Print a list of decoder plugins, followed by their
|
||||
supported suffixes and MIME types. Example response::
|
||||
@@ -1366,12 +1564,16 @@ idle event.
|
||||
If your MPD instance has multiple partitions, note that
|
||||
client-to-client messages are local to the current partition.
|
||||
|
||||
.. _command_subscribe:
|
||||
|
||||
:command:`subscribe {NAME}`
|
||||
Subscribe to a channel. The channel is created if it
|
||||
does not exist already. The name may consist of
|
||||
alphanumeric ASCII characters plus underscore, dash, dot
|
||||
and colon.
|
||||
|
||||
.. _command_unsubscribe:
|
||||
|
||||
:command:`unsubscribe {NAME}`
|
||||
Unsubscribe from a channel.
|
||||
|
||||
@@ -1381,10 +1583,14 @@ client-to-client messages are local to the current partition.
|
||||
Obtain a list of all channels. The response is a list
|
||||
of "channel:" lines.
|
||||
|
||||
.. _command_readmessages:
|
||||
|
||||
:command:`readmessages`
|
||||
Reads messages for this client. The response is a list
|
||||
of "channel:" and "message:" lines.
|
||||
|
||||
.. _command_sendmessage:
|
||||
|
||||
:command:`sendmessage {CHANNEL} {TEXT}`
|
||||
Send a message to the specified channel.
|
||||
|
||||
@@ -1393,6 +1599,7 @@ client-to-client messages are local to the current partition.
|
||||
.. [#since_0_14] Since :program:`MPD` 0.14
|
||||
.. [#since_0_15] Since :program:`MPD` 0.15
|
||||
.. [#since_0_16] Since :program:`MPD` 0.16
|
||||
.. [#since_0_19] Since :program:`MPD` 0.20
|
||||
.. [#since_0_19] Since :program:`MPD` 0.19
|
||||
.. [#since_0_20] Since :program:`MPD` 0.20
|
||||
.. [#since_0_21] Since :program:`MPD` 0.21
|
||||
.. [#since_0_22_4] Since :program:`MPD` 0.22.4
|
||||
|
14
doc/user.rst
14
doc/user.rst
@@ -167,7 +167,7 @@ Compiling for Android
|
||||
You need:
|
||||
|
||||
* Android SDK
|
||||
* Android NDK
|
||||
* `Android NDK r22 <https://developer.android.com/ndk/downloads>`_
|
||||
|
||||
Just like with the native build, unpack the :program:`MPD` source
|
||||
tarball and change into the directory. Then, instead of
|
||||
@@ -1032,12 +1032,20 @@ Check list for bit-perfect playback:
|
||||
:code:`format`, :ref:`audio_output_format <audio_output_format>`).
|
||||
* Verify that you are really doing bit-perfect playback using :program:`MPD`'s verbose log and :file:`/proc/asound/card*/pcm*p/sub*/hw_params`. Some DACs can also indicate the audio format.
|
||||
|
||||
.. _dsd:
|
||||
|
||||
Direct Stream Digital (DSD)
|
||||
---------------------------
|
||||
|
||||
DSD (`Direct Stream Digital <https://en.wikipedia.org/wiki/Direct_Stream_Digital>`_) is a digital format that stores audio as a sequence of single-bit values at a very high sampling rate.
|
||||
DSD (`Direct Stream Digital
|
||||
<https://en.wikipedia.org/wiki/Direct_Stream_Digital>`_) is a digital
|
||||
format that stores audio as a sequence of single-bit values at a very
|
||||
high sampling rate. It is the sample format used on `Super Audio CDs
|
||||
<https://en.wikipedia.org/wiki/Super_Audio_CD>`_.
|
||||
|
||||
:program:`MPD` understands the file formats dff and dsf. There are three ways to play back DSD:
|
||||
:program:`MPD` understands the file formats :ref:`DSDIFF
|
||||
<decoder_dsdiff>` and :ref:`DSF <decoder_dsf>`. There are three ways
|
||||
to play back DSD:
|
||||
|
||||
* Native DSD playback. Requires ALSA 1.0.27.1 or later, a sound driver/chip that supports DSD and of course a DAC that supports DSD.
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
project(
|
||||
'mpd',
|
||||
['c', 'cpp'],
|
||||
version: '0.22.3',
|
||||
version: '0.22.6',
|
||||
meson_version: '>= 0.49.0',
|
||||
default_options: [
|
||||
'c_std=c11',
|
||||
@@ -32,7 +32,7 @@ version_conf = configuration_data()
|
||||
version_conf.set_quoted('PACKAGE', meson.project_name())
|
||||
version_conf.set_quoted('PACKAGE_NAME', meson.project_name())
|
||||
version_conf.set_quoted('VERSION', meson.project_version())
|
||||
version_conf.set_quoted('PROTOCOL_VERSION', '0.22.0')
|
||||
version_conf.set_quoted('PROTOCOL_VERSION', '0.22.4')
|
||||
configure_file(output: 'Version.h', configuration: version_conf)
|
||||
|
||||
conf = configuration_data()
|
||||
|
@@ -10,11 +10,6 @@ class FfmpegProject(Project):
|
||||
self.configure_args = configure_args
|
||||
self.cppflags = cppflags
|
||||
|
||||
def _filter_cflags(self, flags):
|
||||
# FFmpeg expects the GNU as syntax
|
||||
flags = flags.replace(' -integrated-as ', ' -no-integrated-as ')
|
||||
return flags
|
||||
|
||||
def build(self, toolchain):
|
||||
src = self.unpack(toolchain)
|
||||
build = self.make_build_path(toolchain)
|
||||
@@ -36,8 +31,8 @@ class FfmpegProject(Project):
|
||||
'--cc=' + toolchain.cc,
|
||||
'--cxx=' + toolchain.cxx,
|
||||
'--nm=' + toolchain.nm,
|
||||
'--extra-cflags=' + self._filter_cflags(toolchain.cflags) + ' ' + toolchain.cppflags + ' ' + self.cppflags,
|
||||
'--extra-cxxflags=' + self._filter_cflags(toolchain.cxxflags) + ' ' + toolchain.cppflags + ' ' + self.cppflags,
|
||||
'--extra-cflags=' + toolchain.cflags + ' ' + toolchain.cppflags + ' ' + self.cppflags,
|
||||
'--extra-cxxflags=' + toolchain.cxxflags + ' ' + toolchain.cppflags + ' ' + self.cppflags,
|
||||
'--extra-ldflags=' + toolchain.ldflags,
|
||||
'--extra-libs=' + toolchain.libs,
|
||||
'--ar=' + toolchain.ar,
|
||||
|
@@ -7,6 +7,7 @@ from build.meson import MesonProject
|
||||
from build.cmake import CmakeProject
|
||||
from build.autotools import AutotoolsProject
|
||||
from build.ffmpeg import FfmpegProject
|
||||
from build.openssl import OpenSSLProject
|
||||
from build.boost import BoostProject
|
||||
|
||||
libmpdclient = MesonProject(
|
||||
@@ -376,9 +377,15 @@ ffmpeg = FfmpegProject(
|
||||
],
|
||||
)
|
||||
|
||||
openssl = OpenSSLProject(
|
||||
'https://www.openssl.org/source/openssl-3.0.0-alpha10.tar.gz',
|
||||
'b1699acf2148db31f12edf5ebfdf12a92bfd3f0e60538d169710408a3cd3b138',
|
||||
'include/openssl/ossl_typ.h',
|
||||
)
|
||||
|
||||
curl = AutotoolsProject(
|
||||
'http://curl.haxx.se/download/curl-7.73.0.tar.xz',
|
||||
'7c4c7ca4ea88abe00fea4740dcf81075c031b1d0bb23aff2d5efde20a3c2408a',
|
||||
'http://curl.haxx.se/download/curl-7.74.0.tar.xz',
|
||||
'999d5f2c403cf6e25d58319fdd596611e455dd195208746bc6e6d197a77e878b',
|
||||
'lib/libcurl.a',
|
||||
[
|
||||
'--disable-shared', '--enable-static',
|
||||
@@ -399,7 +406,10 @@ curl = AutotoolsProject(
|
||||
'--disable-netrc',
|
||||
'--disable-progress-meter',
|
||||
'--disable-alt-svc',
|
||||
'--without-ssl', '--without-gnutls', '--without-nss', '--without-libssh2',
|
||||
'--without-gnutls', '--without-nss', '--without-libssh2',
|
||||
|
||||
# native Windows SSL/TLS support, option ignored on non-Windows builds
|
||||
'--with-schannel',
|
||||
],
|
||||
|
||||
patches='src/lib/curl/patches',
|
||||
@@ -434,7 +444,7 @@ libnfs = AutotoolsProject(
|
||||
)
|
||||
|
||||
boost = BoostProject(
|
||||
'https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2',
|
||||
'83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1',
|
||||
'https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2',
|
||||
'953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb',
|
||||
'include/boost/version.hpp',
|
||||
)
|
||||
|
55
python/build/openssl.py
Normal file
55
python/build/openssl.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import subprocess
|
||||
|
||||
from build.makeproject import MakeProject
|
||||
|
||||
class OpenSSLProject(MakeProject):
|
||||
def __init__(self, url, md5, installed,
|
||||
**kwargs):
|
||||
MakeProject.__init__(self, url, md5, installed, install_target='install_dev', **kwargs)
|
||||
|
||||
def get_make_args(self, toolchain):
|
||||
return MakeProject.get_make_args(self, toolchain) + [
|
||||
'CC=' + toolchain.cc,
|
||||
'CFLAGS=' + toolchain.cflags,
|
||||
'CPPFLAGS=' + toolchain.cppflags,
|
||||
'AR=' + toolchain.ar,
|
||||
'RANLIB=' + toolchain.ranlib,
|
||||
'build_libs',
|
||||
]
|
||||
|
||||
def build(self, toolchain):
|
||||
src = self.unpack(toolchain, out_of_tree=False)
|
||||
|
||||
# OpenSSL has a weird target architecture scheme with lots of
|
||||
# hard-coded architectures; this table translates between our
|
||||
# "toolchain_arch" (HOST_TRIPLET) and the OpenSSL target
|
||||
openssl_archs = {
|
||||
# not using "android-*" because those OpenSSL targets want
|
||||
# to know where the SDK is, but our own build scripts
|
||||
# prepared everything already to look like a regular Linux
|
||||
# build
|
||||
'arm-linux-androideabi': 'linux-generic32',
|
||||
'aarch64-linux-android': 'linux-aarch64',
|
||||
'i686-linux-android': 'linux-x86-clang',
|
||||
'x86_64-linux-android': 'linux-x86_64-clang',
|
||||
|
||||
# Kobo
|
||||
'arm-linux-gnueabihf': 'linux-generic32',
|
||||
|
||||
# Windows
|
||||
'i686-w64-mingw32': 'mingw',
|
||||
'x86_64-w64-mingw32': 'mingw64',
|
||||
}
|
||||
|
||||
openssl_arch = openssl_archs[toolchain.arch]
|
||||
|
||||
subprocess.check_call(['./Configure',
|
||||
'no-shared',
|
||||
'no-module', 'no-engine', 'no-static-engine',
|
||||
'no-async',
|
||||
'no-tests',
|
||||
'no-asm', # "asm" causes build failures on Windows
|
||||
openssl_arch,
|
||||
'--prefix=' + toolchain.install_prefix],
|
||||
cwd=src, env=toolchain.env)
|
||||
MakeProject.build(self, toolchain, src)
|
@@ -20,7 +20,7 @@ class Project:
|
||||
self.base = base
|
||||
|
||||
if name is None or version is None:
|
||||
m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?[\d.]*)$', self.base)
|
||||
m = re.match(r'^([-\w]+)-(\d[\d.]*[a-z]?[\d.]*(?:-alpha\d+)?)$', self.base)
|
||||
if name is None: name = m.group(1)
|
||||
if version is None: version = m.group(2)
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -91,7 +91,14 @@ song_print_info(Response &r, const LightSong &song, bool base) noexcept
|
||||
if (song.audio_format.IsDefined())
|
||||
r.Format("Format: %s\n", ToString(song.audio_format).c_str());
|
||||
|
||||
tag_print(r, song.tag);
|
||||
tag_print_values(r, song.tag);
|
||||
|
||||
const auto duration = song.GetDuration();
|
||||
if (!duration.IsNegative())
|
||||
r.Format("Time: %i\n"
|
||||
"duration: %1.3f\n",
|
||||
duration.RoundS(),
|
||||
duration.ToDoubleS());
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2020 The Music Player Daemon Project
|
||||
* Copyright 2003-2021 The Music Player Daemon Project
|
||||
* http://www.musicpd.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user