summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am27
-rw-r--r--src/Partition.cxx2
-rw-r--r--src/PlaylistFile.cxx2
-rw-r--r--src/PlaylistSave.cxx2
-rw-r--r--src/SongLoader.cxx2
-rw-r--r--src/SongPrint.cxx4
-rw-r--r--src/SongSave.cxx2
-rw-r--r--src/SongUpdate.cxx2
-rw-r--r--src/command/DatabaseCommands.cxx2
-rw-r--r--src/command/OtherCommands.cxx2
-rw-r--r--src/command/QueueCommands.cxx4
-rw-r--r--src/db/Count.cxx2
-rw-r--r--src/db/DatabasePlaylist.cxx2
-rw-r--r--src/db/DatabasePrint.cxx6
-rw-r--r--src/db/DatabaseQueue.cxx2
-rw-r--r--src/db/DatabaseSong.cxx4
-rw-r--r--src/db/Helpers.cxx2
-rw-r--r--src/db/Selection.cxx2
-rw-r--r--src/db/UniqueTags.cxx2
-rw-r--r--src/db/plugins/ProxyDatabasePlugin.cxx4
-rw-r--r--src/db/plugins/simple/Directory.cxx4
-rw-r--r--src/db/plugins/simple/DirectorySave.cxx2
-rw-r--r--src/db/plugins/simple/Mount.cxx2
-rw-r--r--src/db/plugins/simple/PrefixedLightSong.hxx2
-rw-r--r--src/db/plugins/simple/SimpleDatabasePlugin.hxx2
-rw-r--r--src/db/plugins/simple/Song.cxx4
-rw-r--r--src/db/plugins/upnp/UpnpDatabasePlugin.cxx4
-rw-r--r--src/db/update/Container.cxx2
-rw-r--r--src/decoder/Bridge.cxx2
-rw-r--r--src/decoder/DecoderControl.cxx2
-rw-r--r--src/decoder/DecoderThread.cxx2
-rw-r--r--src/decoder/plugins/GmeDecoderPlugin.cxx2
-rw-r--r--src/decoder/plugins/SidplayDecoderPlugin.cxx2
-rw-r--r--src/player/Control.cxx2
-rw-r--r--src/player/Thread.cxx2
-rw-r--r--src/playlist/MemorySongEnumerator.hxx2
-rw-r--r--src/playlist/PlaylistQueue.cxx2
-rw-r--r--src/playlist/PlaylistSong.cxx2
-rw-r--r--src/playlist/Print.cxx2
-rw-r--r--src/playlist/cue/CueParser.hxx2
-rw-r--r--src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx2
-rw-r--r--src/playlist/plugins/ExtM3uPlaylistPlugin.cxx2
-rw-r--r--src/playlist/plugins/FlacPlaylistPlugin.cxx2
-rw-r--r--src/playlist/plugins/M3uPlaylistPlugin.cxx2
-rw-r--r--src/playlist/plugins/PlsPlaylistPlugin.cxx2
-rw-r--r--src/playlist/plugins/XspfPlaylistPlugin.cxx2
-rw-r--r--src/queue/Playlist.cxx2
-rw-r--r--src/queue/PlaylistControl.cxx2
-rw-r--r--src/queue/PlaylistEdit.cxx2
-rw-r--r--src/queue/PlaylistTag.cxx2
-rw-r--r--src/queue/PlaylistUpdate.cxx4
-rw-r--r--src/queue/Queue.cxx2
-rw-r--r--src/queue/QueuePrint.cxx6
-rw-r--r--src/queue/QueueSave.cxx2
-rw-r--r--src/song/DetachedSong.cxx (renamed from src/DetachedSong.cxx)4
-rw-r--r--src/song/DetachedSong.hxx (renamed from src/DetachedSong.hxx)0
-rw-r--r--src/song/Filter.cxx (renamed from src/SongFilter.cxx)4
-rw-r--r--src/song/Filter.hxx (renamed from src/SongFilter.hxx)0
-rw-r--r--src/song/LightSong.cxx (renamed from src/db/LightSong.cxx)0
-rw-r--r--src/song/LightSong.hxx (renamed from src/db/LightSong.hxx)0
-rw-r--r--src/sticker/SongSticker.cxx2
-rw-r--r--test/ContainerScan.cxx2
-rw-r--r--test/DumpDatabase.cxx2
-rw-r--r--test/ParseSongFilter.cxx2
-rw-r--r--test/dump_playlist.cxx2
-rw-r--r--test/test_queue_priority.cxx2
-rw-r--r--test/test_translate_song.cxx2
67 files changed, 89 insertions, 90 deletions
diff --git a/Makefile.am b/Makefile.am
index 71e1ae550..32cc84b44 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,6 +22,7 @@ noinst_LIBRARIES = \
libpcm.a \
libbasic.a \
libconf.a \
+ libsong.a \
libtag.a \
libinput.a \
libfs.a \
@@ -53,6 +54,7 @@ src_mpd_LDADD = \
$(INPUT_LIBS) \
$(ARCHIVE_LIBS) \
$(OUTPUT_LIBS) \
+ libsong.a \
$(TAG_LIBS) \
$(FILTER_LIBS) \
$(ENCODER_LIBS) \
@@ -168,7 +170,6 @@ libmpd_a_SOURCES = \
src/queue/Listener.hxx \
src/PluginUnavailable.hxx \
src/ReplayGainGlobal.cxx src/ReplayGainGlobal.hxx \
- src/DetachedSong.cxx src/DetachedSong.hxx \
src/LocateUri.cxx src/LocateUri.hxx \
src/SongUpdate.cxx \
src/SongLoader.cxx src/SongLoader.hxx \
@@ -184,7 +185,6 @@ libmpd_a_SOURCES = \
src/TimePrint.cxx src/TimePrint.hxx \
src/mixer/Volume.cxx src/mixer/Volume.hxx \
src/Chrono.hxx \
- src/SongFilter.cxx src/SongFilter.hxx \
src/PlaylistFile.cxx src/PlaylistFile.hxx
if ENABLE_CURL
@@ -218,7 +218,6 @@ libmpd_a_SOURCES += \
src/command/StorageCommands.cxx src/command/StorageCommands.hxx \
src/command/DatabaseCommands.cxx src/command/DatabaseCommands.hxx \
src/db/Count.cxx src/db/Count.hxx \
- src/db/LightSong.cxx src/db/LightSong.hxx \
src/db/LightDirectory.hxx \
src/db/update/UpdateDomain.cxx src/db/update/UpdateDomain.hxx \
src/db/update/Config.cxx src/db/update/Config.hxx \
@@ -1026,6 +1025,13 @@ libconf_a_SOURCES = \
src/config/Domain.cxx src/config/Domain.hxx \
src/config/Option.hxx
+# the Song library
+
+libsong_a_SOURCES = \
+ src/song/DetachedSong.cxx src/song/DetachedSong.hxx \
+ src/song/Filter.cxx src/song/Filter.hxx \
+ src/song/LightSong.cxx src/song/LightSong.hxx
+
# tag plugins
libtag_a_CPPFLAGS = $(AM_CPPFLAGS) \
@@ -1917,11 +1923,11 @@ noinst_PROGRAMS += test/read_mixer
endif
test_ParseSongFilter_LDADD = \
+ libsong.a \
$(TAG_LIBS) \
$(ICU_LDADD) \
libutil.a
test_ParseSongFilter_SOURCES = \
- src/SongFilter.cxx \
test/ParseSongFilter.cxx
test_read_conf_LDADD = \
@@ -1945,6 +1951,7 @@ if ENABLE_DATABASE
test_DumpDatabase_LDADD = \
$(DB_LIBS) \
+ libsong.a \
$(TAG_LIBS) \
libconf.a \
libevent.a \
@@ -1964,9 +1971,7 @@ test_DumpDatabase_SOURCES = test/DumpDatabase.cxx \
src/AudioParser.cxx \
src/pcm/SampleFormat.cxx \
src/SongSave.cxx \
- src/DetachedSong.cxx \
- src/TagSave.cxx \
- src/SongFilter.cxx
+ src/TagSave.cxx
test_DumpDatabase_CPPFLAGS = $(AM_CPPFLAGS)
if ENABLE_UPNP
@@ -2117,8 +2122,7 @@ test_dump_playlist_LDADD = \
test_dump_playlist_SOURCES = test/dump_playlist.cxx \
src/Log.cxx src/LogBackend.cxx \
src/TagSave.cxx \
- src/TagFile.cxx \
- src/DetachedSong.cxx
+ src/TagFile.cxx
if ENABLE_FLAC
test_dump_playlist_SOURCES += \
@@ -2141,7 +2145,6 @@ test_run_decoder_LDADD = \
libutil.a
test_run_decoder_SOURCES = test/run_decoder.cxx \
test/DumpDecoderClient.cxx test/DumpDecoderClient.hxx \
- src/DetachedSong.cxx \
src/Log.cxx src/LogBackend.cxx \
src/ReplayGainInfo.cxx
@@ -2160,7 +2163,6 @@ test_read_tags_LDADD = \
libsystem.a \
libutil.a
test_read_tags_SOURCES = test/read_tags.cxx \
- src/DetachedSong.cxx \
src/Log.cxx src/LogBackend.cxx \
src/ReplayGainInfo.cxx
@@ -2191,7 +2193,6 @@ test_ContainerScan_LDADD = \
libsystem.a \
libutil.a
test_ContainerScan_SOURCES = test/ContainerScan.cxx \
- src/DetachedSong.cxx \
src/SongSave.cxx src/TagSave.cxx \
src/Log.cxx src/LogBackend.cxx \
src/ReplayGainInfo.cxx \
@@ -2453,7 +2454,6 @@ if ENABLE_DATABASE
test_test_translate_song_SOURCES = \
src/playlist/PlaylistSong.cxx \
src/PlaylistError.cxx \
- src/DetachedSong.cxx \
src/SongLoader.cxx \
src/LocateUri.cxx \
src/Log.cxx \
@@ -2483,7 +2483,6 @@ test_test_protocol_LDADD = \
test_test_queue_priority_SOURCES = \
src/queue/Queue.cxx \
- src/DetachedSong.cxx \
test/test_queue_priority.cxx
test_test_queue_priority_CPPFLAGS = $(AM_CPPFLAGS) $(CPPUNIT_CFLAGS)
test_test_queue_priority_CXXFLAGS = $(AM_CXXFLAGS) -Wno-error=deprecated-declarations
diff --git a/src/Partition.cxx b/src/Partition.cxx
index 37b0a56aa..5b1c4821d 100644
--- a/src/Partition.cxx
+++ b/src/Partition.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "Partition.hxx"
#include "Instance.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "mixer/Volume.hxx"
#include "IdleFlags.hxx"
#include "client/Listener.hxx"
diff --git a/src/PlaylistFile.cxx b/src/PlaylistFile.cxx
index 1ae65eb3f..7790c5917 100644
--- a/src/PlaylistFile.cxx
+++ b/src/PlaylistFile.cxx
@@ -23,7 +23,7 @@
#include "PlaylistError.hxx"
#include "db/PlaylistInfo.hxx"
#include "db/PlaylistVector.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongLoader.hxx"
#include "Mapper.hxx"
#include "fs/io/TextFile.hxx"
diff --git a/src/PlaylistSave.cxx b/src/PlaylistSave.cxx
index 21e329d75..da937de5c 100644
--- a/src/PlaylistSave.cxx
+++ b/src/PlaylistSave.cxx
@@ -22,7 +22,7 @@
#include "PlaylistFile.hxx"
#include "PlaylistError.hxx"
#include "queue/Playlist.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "Mapper.hxx"
#include "Idle.hxx"
#include "fs/AllocatedPath.hxx"
diff --git a/src/SongLoader.cxx b/src/SongLoader.cxx
index 72c035038..763abd27d 100644
--- a/src/SongLoader.cxx
+++ b/src/SongLoader.cxx
@@ -23,7 +23,7 @@
#include "client/Client.hxx"
#include "db/DatabaseSong.hxx"
#include "storage/StorageInterface.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "PlaylistError.hxx"
#include <assert.h>
diff --git a/src/SongPrint.cxx b/src/SongPrint.cxx
index b42287c02..8759c732b 100644
--- a/src/SongPrint.cxx
+++ b/src/SongPrint.cxx
@@ -19,11 +19,11 @@
#include "config.h"
#include "SongPrint.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "Partition.hxx"
#include "Instance.hxx"
#include "storage/StorageInterface.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "TimePrint.hxx"
#include "TagPrint.hxx"
#include "client/Response.hxx"
diff --git a/src/SongSave.cxx b/src/SongSave.cxx
index e42c58f49..2397f7430 100644
--- a/src/SongSave.cxx
+++ b/src/SongSave.cxx
@@ -21,7 +21,7 @@
#include "SongSave.hxx"
#include "AudioParser.hxx"
#include "db/plugins/simple/Song.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "TagSave.hxx"
#include "fs/io/TextFile.hxx"
#include "fs/io/BufferedOutputStream.hxx"
diff --git a/src/SongUpdate.cxx b/src/SongUpdate.cxx
index 5738955b3..cf089f96e 100644
--- a/src/SongUpdate.cxx
+++ b/src/SongUpdate.cxx
@@ -18,7 +18,7 @@
*/
#include "config.h" /* must be first for large file support */
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "db/plugins/simple/Song.hxx"
#include "db/plugins/simple/Directory.hxx"
#include "storage/StorageInterface.hxx"
diff --git a/src/command/DatabaseCommands.cxx b/src/command/DatabaseCommands.cxx
index 7fb1c3b06..07ac81edb 100644
--- a/src/command/DatabaseCommands.cxx
+++ b/src/command/DatabaseCommands.cxx
@@ -34,7 +34,7 @@
#include "util/Exception.hxx"
#include "util/StringAPI.hxx"
#include "util/ASCII.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "BulkEdit.hxx"
#include <memory>
diff --git a/src/command/OtherCommands.cxx b/src/command/OtherCommands.cxx
index b08468aca..2401a5845 100644
--- a/src/command/OtherCommands.cxx
+++ b/src/command/OtherCommands.cxx
@@ -26,7 +26,7 @@
#include "db/Uri.hxx"
#include "storage/StorageInterface.hxx"
#include "LocateUri.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongPrint.hxx"
#include "TagPrint.hxx"
#include "TagStream.hxx"
diff --git a/src/command/QueueCommands.cxx b/src/command/QueueCommands.cxx
index 89dd885f3..55abcc268 100644
--- a/src/command/QueueCommands.cxx
+++ b/src/command/QueueCommands.cxx
@@ -23,9 +23,9 @@
#include "CommandError.hxx"
#include "db/DatabaseQueue.hxx"
#include "db/Selection.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "SongLoader.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "LocateUri.hxx"
#include "queue/Playlist.hxx"
#include "PlaylistPrint.hxx"
diff --git a/src/db/Count.cxx b/src/db/Count.cxx
index 08e1fae97..2e55821cb 100644
--- a/src/db/Count.cxx
+++ b/src/db/Count.cxx
@@ -23,7 +23,7 @@
#include "Interface.hxx"
#include "Partition.hxx"
#include "client/Response.hxx"
-#include "LightSong.hxx"
+#include "song/LightSong.hxx"
#include "tag/Tag.hxx"
#include "TagPrint.hxx"
diff --git a/src/db/DatabasePlaylist.cxx b/src/db/DatabasePlaylist.cxx
index f1deb3a36..43cf291e4 100644
--- a/src/db/DatabasePlaylist.cxx
+++ b/src/db/DatabasePlaylist.cxx
@@ -23,7 +23,7 @@
#include "Selection.hxx"
#include "PlaylistFile.hxx"
#include "Interface.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include <functional>
diff --git a/src/db/DatabasePrint.cxx b/src/db/DatabasePrint.cxx
index dfcdf02ce..0bda1fb75 100644
--- a/src/db/DatabasePrint.cxx
+++ b/src/db/DatabasePrint.cxx
@@ -20,16 +20,16 @@
#include "config.h"
#include "DatabasePrint.hxx"
#include "Selection.hxx"
-#include "SongFilter.hxx"
#include "SongPrint.hxx"
-#include "DetachedSong.hxx"
#include "TimePrint.hxx"
#include "TagPrint.hxx"
#include "client/Response.hxx"
#include "Partition.hxx"
+#include "song/DetachedSong.hxx"
+#include "song/Filter.hxx"
+#include "song/LightSong.hxx"
#include "tag/Tag.hxx"
#include "tag/Mask.hxx"
-#include "LightSong.hxx"
#include "LightDirectory.hxx"
#include "PlaylistInfo.hxx"
#include "Interface.hxx"
diff --git a/src/db/DatabaseQueue.cxx b/src/db/DatabaseQueue.cxx
index 1fe8c2cd6..32763fdfb 100644
--- a/src/db/DatabaseQueue.cxx
+++ b/src/db/DatabaseQueue.cxx
@@ -23,7 +23,7 @@
#include "Interface.hxx"
#include "Partition.hxx"
#include "Instance.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include <functional>
diff --git a/src/db/DatabaseSong.cxx b/src/db/DatabaseSong.cxx
index 5b4ca1caa..58cb94600 100644
--- a/src/db/DatabaseSong.cxx
+++ b/src/db/DatabaseSong.cxx
@@ -19,9 +19,9 @@
#include "config.h"
#include "DatabaseSong.hxx"
-#include "LightSong.hxx"
#include "Interface.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
+#include "song/LightSong.hxx"
#include "storage/StorageInterface.hxx"
#include "util/ScopeExit.hxx"
diff --git a/src/db/Helpers.cxx b/src/db/Helpers.cxx
index dec2d0177..ea8fad498 100644
--- a/src/db/Helpers.cxx
+++ b/src/db/Helpers.cxx
@@ -20,7 +20,7 @@
#include "Helpers.hxx"
#include "Stats.hxx"
#include "Interface.hxx"
-#include "LightSong.hxx"
+#include "song/LightSong.hxx"
#include "tag/Tag.hxx"
#include <set>
diff --git a/src/db/Selection.cxx b/src/db/Selection.cxx
index c25bf99f1..75cc0c7d3 100644
--- a/src/db/Selection.cxx
+++ b/src/db/Selection.cxx
@@ -19,7 +19,7 @@
#include "config.h"
#include "Selection.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
DatabaseSelection::DatabaseSelection(const char *_uri, bool _recursive,
const SongFilter *_filter)
diff --git a/src/db/UniqueTags.cxx b/src/db/UniqueTags.cxx
index 4820f53ae..ad2ec2430 100644
--- a/src/db/UniqueTags.cxx
+++ b/src/db/UniqueTags.cxx
@@ -19,7 +19,7 @@
#include "UniqueTags.hxx"
#include "Interface.hxx"
-#include "LightSong.hxx"
+#include "song/LightSong.hxx"
#include "tag/Set.hxx"
#include "tag/Mask.hxx"
diff --git a/src/db/plugins/ProxyDatabasePlugin.cxx b/src/db/plugins/ProxyDatabasePlugin.cxx
index 9e8fc6802..7aeb08b4a 100644
--- a/src/db/plugins/ProxyDatabasePlugin.cxx
+++ b/src/db/plugins/ProxyDatabasePlugin.cxx
@@ -26,9 +26,9 @@
#include "db/DatabaseError.hxx"
#include "db/PlaylistInfo.hxx"
#include "db/LightDirectory.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "db/Stats.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "Compiler.h"
#include "config/Block.hxx"
#include "tag/Builder.hxx"
diff --git a/src/db/plugins/simple/Directory.cxx b/src/db/plugins/simple/Directory.cxx
index 3bc9c35aa..3b475627f 100644
--- a/src/db/plugins/simple/Directory.cxx
+++ b/src/db/plugins/simple/Directory.cxx
@@ -23,11 +23,11 @@
#include "Song.hxx"
#include "Mount.hxx"
#include "db/LightDirectory.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "db/Uri.hxx"
#include "db/DatabaseLock.hxx"
#include "db/Interface.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "lib/icu/Collate.hxx"
#include "fs/Traits.hxx"
#include "util/Alloc.hxx"
diff --git a/src/db/plugins/simple/DirectorySave.cxx b/src/db/plugins/simple/DirectorySave.cxx
index 35406cadd..78fb17b84 100644
--- a/src/db/plugins/simple/DirectorySave.cxx
+++ b/src/db/plugins/simple/DirectorySave.cxx
@@ -22,7 +22,7 @@
#include "Directory.hxx"
#include "Song.hxx"
#include "SongSave.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "PlaylistDatabase.hxx"
#include "fs/io/TextFile.hxx"
#include "fs/io/BufferedOutputStream.hxx"
diff --git a/src/db/plugins/simple/Mount.cxx b/src/db/plugins/simple/Mount.cxx
index 22db95f46..d1c694adb 100644
--- a/src/db/plugins/simple/Mount.cxx
+++ b/src/db/plugins/simple/Mount.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "Mount.hxx"
#include "PrefixedLightSong.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "db/Selection.hxx"
#include "db/LightDirectory.hxx"
#include "db/Interface.hxx"
diff --git a/src/db/plugins/simple/PrefixedLightSong.hxx b/src/db/plugins/simple/PrefixedLightSong.hxx
index b888a68b5..9bfaa5158 100644
--- a/src/db/plugins/simple/PrefixedLightSong.hxx
+++ b/src/db/plugins/simple/PrefixedLightSong.hxx
@@ -21,7 +21,7 @@
#define MPD_DB_SIMPLE_PREFIXED_LIGHT_SONG_HXX
#include "check.h"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "fs/Traits.hxx"
#include <string>
diff --git a/src/db/plugins/simple/SimpleDatabasePlugin.hxx b/src/db/plugins/simple/SimpleDatabasePlugin.hxx
index 4d167eabf..be5919c00 100644
--- a/src/db/plugins/simple/SimpleDatabasePlugin.hxx
+++ b/src/db/plugins/simple/SimpleDatabasePlugin.hxx
@@ -23,7 +23,7 @@
#include "check.h"
#include "db/Interface.hxx"
#include "fs/AllocatedPath.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "util/Manual.hxx"
#include "Compiler.h"
diff --git a/src/db/plugins/simple/Song.cxx b/src/db/plugins/simple/Song.cxx
index 4933e0e38..024dd6c90 100644
--- a/src/db/plugins/simple/Song.cxx
+++ b/src/db/plugins/simple/Song.cxx
@@ -22,8 +22,8 @@
#include "Directory.hxx"
#include "tag/Tag.hxx"
#include "util/VarSize.hxx"
-#include "DetachedSong.hxx"
-#include "db/LightSong.hxx"
+#include "song/DetachedSong.hxx"
+#include "song/LightSong.hxx"
#include <assert.h>
#include <string.h>
diff --git a/src/db/plugins/upnp/UpnpDatabasePlugin.cxx b/src/db/plugins/upnp/UpnpDatabasePlugin.cxx
index a343d06a4..a901a9675 100644
--- a/src/db/plugins/upnp/UpnpDatabasePlugin.cxx
+++ b/src/db/plugins/upnp/UpnpDatabasePlugin.cxx
@@ -29,7 +29,7 @@
#include "db/Selection.hxx"
#include "db/DatabaseError.hxx"
#include "db/LightDirectory.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "db/Stats.hxx"
#include "config/Block.hxx"
#include "tag/Builder.hxx"
@@ -37,7 +37,7 @@
#include "tag/Mask.hxx"
#include "fs/Traits.hxx"
#include "Log.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "util/SplitString.hxx"
#include <string>
diff --git a/src/db/update/Container.cxx b/src/db/update/Container.cxx
index 9dd15f5d2..a878905d3 100644
--- a/src/db/update/Container.cxx
+++ b/src/db/update/Container.cxx
@@ -20,7 +20,7 @@
#include "config.h" /* must be first for large file support */
#include "Walk.hxx"
#include "UpdateDomain.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "db/DatabaseLock.hxx"
#include "db/plugins/simple/Directory.hxx"
#include "db/plugins/simple/Song.hxx"
diff --git a/src/decoder/Bridge.cxx b/src/decoder/Bridge.cxx
index a38b89b3b..d5585585b 100644
--- a/src/decoder/Bridge.cxx
+++ b/src/decoder/Bridge.cxx
@@ -22,7 +22,7 @@
#include "DecoderAPI.hxx"
#include "DecoderError.hxx"
#include "DecoderControl.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "pcm/PcmConvert.hxx"
#include "MusicPipe.hxx"
#include "MusicBuffer.hxx"
diff --git a/src/decoder/DecoderControl.cxx b/src/decoder/DecoderControl.cxx
index a851ab56e..88c75e008 100644
--- a/src/decoder/DecoderControl.cxx
+++ b/src/decoder/DecoderControl.cxx
@@ -21,7 +21,7 @@
#include "DecoderControl.hxx"
#include "DecoderError.hxx"
#include "MusicPipe.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include <stdexcept>
diff --git a/src/decoder/DecoderThread.cxx b/src/decoder/DecoderThread.cxx
index 6a0d9d152..43fbece73 100644
--- a/src/decoder/DecoderThread.cxx
+++ b/src/decoder/DecoderThread.cxx
@@ -23,7 +23,7 @@
#include "Bridge.hxx"
#include "DecoderError.hxx"
#include "DecoderPlugin.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "MusicPipe.hxx"
#include "fs/Traits.hxx"
#include "fs/AllocatedPath.hxx"
diff --git a/src/decoder/plugins/GmeDecoderPlugin.cxx b/src/decoder/plugins/GmeDecoderPlugin.cxx
index 4cd931274..5527ec409 100644
--- a/src/decoder/plugins/GmeDecoderPlugin.cxx
+++ b/src/decoder/plugins/GmeDecoderPlugin.cxx
@@ -22,7 +22,7 @@
#include "../DecoderAPI.hxx"
#include "config/Block.cxx"
#include "CheckAudioFormat.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "tag/Handler.hxx"
#include "tag/Builder.hxx"
#include "fs/Path.hxx"
diff --git a/src/decoder/plugins/SidplayDecoderPlugin.cxx b/src/decoder/plugins/SidplayDecoderPlugin.cxx
index ac29f4fc8..663360dc1 100644
--- a/src/decoder/plugins/SidplayDecoderPlugin.cxx
+++ b/src/decoder/plugins/SidplayDecoderPlugin.cxx
@@ -22,7 +22,7 @@
#include "../DecoderAPI.hxx"
#include "tag/Handler.hxx"
#include "tag/Builder.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "fs/Path.hxx"
#include "fs/AllocatedPath.hxx"
#include "util/Macros.hxx"
diff --git a/src/player/Control.cxx b/src/player/Control.cxx
index 4e4bdb00d..6d48d28d6 100644
--- a/src/player/Control.cxx
+++ b/src/player/Control.cxx
@@ -21,7 +21,7 @@
#include "Control.hxx"
#include "Outputs.hxx"
#include "Idle.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include <algorithm>
diff --git a/src/player/Thread.cxx b/src/player/Thread.cxx
index fe67f5ed9..8a91d0c57 100644
--- a/src/player/Thread.cxx
+++ b/src/player/Thread.cxx
@@ -26,7 +26,7 @@
#include "MusicPipe.hxx"
#include "MusicBuffer.hxx"
#include "MusicChunk.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "CrossFade.hxx"
#include "Control.hxx"
#include "tag/Tag.hxx"
diff --git a/src/playlist/MemorySongEnumerator.hxx b/src/playlist/MemorySongEnumerator.hxx
index 2743f5232..7b9f78d13 100644
--- a/src/playlist/MemorySongEnumerator.hxx
+++ b/src/playlist/MemorySongEnumerator.hxx
@@ -21,7 +21,7 @@
#define MPD_MEMORY_PLAYLIST_PROVIDER_HXX
#include "SongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "Compiler.h"
#include <forward_list>
diff --git a/src/playlist/PlaylistQueue.cxx b/src/playlist/PlaylistQueue.cxx
index ca01d7267..2a2601422 100644
--- a/src/playlist/PlaylistQueue.cxx
+++ b/src/playlist/PlaylistQueue.cxx
@@ -24,7 +24,7 @@
#include "PlaylistError.hxx"
#include "queue/Playlist.hxx"
#include "SongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "thread/Mutex.hxx"
#include "fs/Traits.hxx"
diff --git a/src/playlist/PlaylistSong.cxx b/src/playlist/PlaylistSong.cxx
index 788d77c87..630ce26c2 100644
--- a/src/playlist/PlaylistSong.cxx
+++ b/src/playlist/PlaylistSong.cxx
@@ -24,7 +24,7 @@
#include "tag/Builder.hxx"
#include "fs/Traits.hxx"
#include "util/UriUtil.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include <string.h>
diff --git a/src/playlist/Print.cxx b/src/playlist/Print.cxx
index 95b8ad66b..bd847f402 100644
--- a/src/playlist/Print.cxx
+++ b/src/playlist/Print.cxx
@@ -23,7 +23,7 @@
#include "PlaylistSong.hxx"
#include "SongEnumerator.hxx"
#include "SongPrint.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "fs/Traits.hxx"
#include "thread/Mutex.hxx"
#include "Partition.hxx"
diff --git a/src/playlist/cue/CueParser.hxx b/src/playlist/cue/CueParser.hxx
index 9f8984aa6..c9e344c98 100644
--- a/src/playlist/cue/CueParser.hxx
+++ b/src/playlist/cue/CueParser.hxx
@@ -21,7 +21,7 @@
#define MPD_CUE_PARSER_HXX
#include "check.h"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "tag/Builder.hxx"
#include "Compiler.h"
diff --git a/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx b/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx
index 00f4007fd..4aa5ee78e 100644
--- a/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx
+++ b/src/playlist/plugins/EmbeddedCuePlaylistPlugin.cxx
@@ -30,7 +30,7 @@
#include "../cue/CueParser.hxx"
#include "tag/Handler.hxx"
#include "tag/Generic.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "TagFile.hxx"
#include "fs/Traits.hxx"
#include "fs/AllocatedPath.hxx"
diff --git a/src/playlist/plugins/ExtM3uPlaylistPlugin.cxx b/src/playlist/plugins/ExtM3uPlaylistPlugin.cxx
index 912aed529..7495ede72 100644
--- a/src/playlist/plugins/ExtM3uPlaylistPlugin.cxx
+++ b/src/playlist/plugins/ExtM3uPlaylistPlugin.cxx
@@ -21,7 +21,7 @@
#include "ExtM3uPlaylistPlugin.hxx"
#include "../PlaylistPlugin.hxx"
#include "../SongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "tag/Tag.hxx"
#include "tag/Builder.hxx"
#include "util/StringStrip.hxx"
diff --git a/src/playlist/plugins/FlacPlaylistPlugin.cxx b/src/playlist/plugins/FlacPlaylistPlugin.cxx
index 330c3b332..ab314f9b3 100644
--- a/src/playlist/plugins/FlacPlaylistPlugin.cxx
+++ b/src/playlist/plugins/FlacPlaylistPlugin.cxx
@@ -27,7 +27,7 @@
#include "FlacPlaylistPlugin.hxx"
#include "../PlaylistPlugin.hxx"
#include "../SongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "fs/Traits.hxx"
#include "fs/AllocatedPath.hxx"
#include "fs/NarrowPath.hxx"
diff --git a/src/playlist/plugins/M3uPlaylistPlugin.cxx b/src/playlist/plugins/M3uPlaylistPlugin.cxx
index b4ca8926f..4afce84fe 100644
--- a/src/playlist/plugins/M3uPlaylistPlugin.cxx
+++ b/src/playlist/plugins/M3uPlaylistPlugin.cxx
@@ -21,7 +21,7 @@
#include "M3uPlaylistPlugin.hxx"
#include "../PlaylistPlugin.hxx"
#include "../SongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "input/TextInputStream.hxx"
#include "util/StringStrip.hxx"
diff --git a/src/playlist/plugins/PlsPlaylistPlugin.cxx b/src/playlist/plugins/PlsPlaylistPlugin.cxx
index 3f114f361..48e47a4e4 100644
--- a/src/playlist/plugins/PlsPlaylistPlugin.cxx
+++ b/src/playlist/plugins/PlsPlaylistPlugin.cxx
@@ -23,7 +23,7 @@
#include "../MemorySongEnumerator.hxx"
#include "input/TextInputStream.hxx"
#include "input/InputStream.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "tag/Builder.hxx"
#include "util/ASCII.hxx"
#include "util/StringStrip.hxx"
diff --git a/src/playlist/plugins/XspfPlaylistPlugin.cxx b/src/playlist/plugins/XspfPlaylistPlugin.cxx
index 479f8edf0..f2aa466de 100644
--- a/src/playlist/plugins/XspfPlaylistPlugin.cxx
+++ b/src/playlist/plugins/XspfPlaylistPlugin.cxx
@@ -21,7 +21,7 @@
#include "XspfPlaylistPlugin.hxx"
#include "../PlaylistPlugin.hxx"
#include "../MemorySongEnumerator.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "input/InputStream.hxx"
#include "tag/Builder.hxx"
#include "util/StringView.hxx"
diff --git a/src/queue/Playlist.cxx b/src/queue/Playlist.cxx
index cb1de5171..f2d6c9672 100644
--- a/src/queue/Playlist.cxx
+++ b/src/queue/Playlist.cxx
@@ -22,7 +22,7 @@
#include "Listener.hxx"
#include "PlaylistError.hxx"
#include "player/Control.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SingleMode.hxx"
#include "Log.hxx"
diff --git a/src/queue/PlaylistControl.cxx b/src/queue/PlaylistControl.cxx
index 79bb87e41..fb869c864 100644
--- a/src/queue/PlaylistControl.cxx
+++ b/src/queue/PlaylistControl.cxx
@@ -26,7 +26,7 @@
#include "Playlist.hxx"
#include "PlaylistError.hxx"
#include "player/Control.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "Log.hxx"
void
diff --git a/src/queue/PlaylistEdit.cxx b/src/queue/PlaylistEdit.cxx
index 24ee1faab..810ced0dc 100644
--- a/src/queue/PlaylistEdit.cxx
+++ b/src/queue/PlaylistEdit.cxx
@@ -28,7 +28,7 @@
#include "Listener.hxx"
#include "PlaylistError.hxx"
#include "player/Control.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongLoader.hxx"
#include <memory>
diff --git a/src/queue/PlaylistTag.cxx b/src/queue/PlaylistTag.cxx
index 2bbc61a7e..f36f4a374 100644
--- a/src/queue/PlaylistTag.cxx
+++ b/src/queue/PlaylistTag.cxx
@@ -26,7 +26,7 @@
#include "config.h"
#include "Playlist.hxx"
#include "PlaylistError.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "tag/Tag.hxx"
#include "tag/Builder.hxx"
diff --git a/src/queue/PlaylistUpdate.cxx b/src/queue/PlaylistUpdate.cxx
index 84e1e1b71..2461376bb 100644
--- a/src/queue/PlaylistUpdate.cxx
+++ b/src/queue/PlaylistUpdate.cxx
@@ -20,8 +20,8 @@
#include "config.h"
#include "Playlist.hxx"
#include "db/Interface.hxx"
-#include "db/LightSong.hxx"
-#include "DetachedSong.hxx"
+#include "song/LightSong.hxx"
+#include "song/DetachedSong.hxx"
static bool
UpdatePlaylistSong(const Database &db, DetachedSong &song)
diff --git a/src/queue/Queue.cxx b/src/queue/Queue.cxx
index bae64a1e6..8251646ca 100644
--- a/src/queue/Queue.cxx
+++ b/src/queue/Queue.cxx
@@ -19,7 +19,7 @@
#include "config.h"
#include "Queue.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
Queue::Queue(unsigned _max_length) noexcept
:max_length(_max_length),
diff --git a/src/queue/QueuePrint.cxx b/src/queue/QueuePrint.cxx
index f5daca0c4..0b9912ecf 100644
--- a/src/queue/QueuePrint.cxx
+++ b/src/queue/QueuePrint.cxx
@@ -20,10 +20,10 @@
#include "config.h"
#include "QueuePrint.hxx"
#include "Queue.hxx"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "SongPrint.hxx"
-#include "DetachedSong.hxx"
-#include "db/LightSong.hxx"
+#include "song/DetachedSong.hxx"
+#include "song/LightSong.hxx"
#include "client/Response.hxx"
/**
diff --git a/src/queue/QueueSave.cxx b/src/queue/QueueSave.cxx
index 4bfb54072..b82f0ed6d 100644
--- a/src/queue/QueueSave.cxx
+++ b/src/queue/QueueSave.cxx
@@ -21,7 +21,7 @@
#include "QueueSave.hxx"
#include "Queue.hxx"
#include "PlaylistError.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongSave.hxx"
#include "playlist/PlaylistSong.hxx"
#include "fs/io/TextFile.hxx"
diff --git a/src/DetachedSong.cxx b/src/song/DetachedSong.cxx
index 8b44b1064..cb0eaf03a 100644
--- a/src/DetachedSong.cxx
+++ b/src/song/DetachedSong.cxx
@@ -18,8 +18,8 @@
*/
#include "config.h"
-#include "DetachedSong.hxx"
-#include "db/LightSong.hxx"
+#include "song/DetachedSong.hxx"
+#include "song/LightSong.hxx"
#include "util/UriUtil.hxx"
#include "fs/Traits.hxx"
diff --git a/src/DetachedSong.hxx b/src/song/DetachedSong.hxx
index a161ad427..a161ad427 100644
--- a/src/DetachedSong.hxx
+++ b/src/song/DetachedSong.hxx
diff --git a/src/SongFilter.cxx b/src/song/Filter.cxx
index 35a4b9865..6259cefae 100644
--- a/src/SongFilter.cxx
+++ b/src/song/Filter.cxx
@@ -18,8 +18,8 @@
*/
#include "config.h"
-#include "SongFilter.hxx"
-#include "db/LightSong.hxx"
+#include "Filter.hxx"
+#include "LightSong.hxx"
#include "tag/ParseName.hxx"
#include "tag/Tag.hxx"
#include "util/CharUtil.hxx"
diff --git a/src/SongFilter.hxx b/src/song/Filter.hxx
index b627e4b38..b627e4b38 100644
--- a/src/SongFilter.hxx
+++ b/src/song/Filter.hxx
diff --git a/src/db/LightSong.cxx b/src/song/LightSong.cxx
index b1a219e0b..b1a219e0b 100644
--- a/src/db/LightSong.cxx
+++ b/src/song/LightSong.cxx
diff --git a/src/db/LightSong.hxx b/src/song/LightSong.hxx
index 7bc21e030..7bc21e030 100644
--- a/src/db/LightSong.hxx
+++ b/src/song/LightSong.hxx
diff --git a/src/sticker/SongSticker.cxx b/src/sticker/SongSticker.cxx
index 0101a1820..dba2a29db 100644
--- a/src/sticker/SongSticker.cxx
+++ b/src/sticker/SongSticker.cxx
@@ -20,7 +20,7 @@
#include "config.h"
#include "SongSticker.hxx"
#include "StickerDatabase.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "db/Interface.hxx"
#include "util/Alloc.hxx"
#include "util/ScopeExit.hxx"
diff --git a/test/ContainerScan.cxx b/test/ContainerScan.cxx
index ac4ad55a4..802dd0745 100644
--- a/test/ContainerScan.cxx
+++ b/test/ContainerScan.cxx
@@ -18,7 +18,7 @@
*/
#include "config.h"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongSave.hxx"
#include "config/Data.hxx"
#include "decoder/DecoderList.hxx"
diff --git a/test/DumpDatabase.cxx b/test/DumpDatabase.cxx
index bd51870f1..671af4922 100644
--- a/test/DumpDatabase.cxx
+++ b/test/DumpDatabase.cxx
@@ -24,7 +24,7 @@
#include "db/Selection.hxx"
#include "db/DatabaseListener.hxx"
#include "db/LightDirectory.hxx"
-#include "db/LightSong.hxx"
+#include "song/LightSong.hxx"
#include "db/PlaylistVector.hxx"
#include "config/Global.hxx"
#include "config/Data.hxx"
diff --git a/test/ParseSongFilter.cxx b/test/ParseSongFilter.cxx
index 5cde6f301..7f368a03a 100644
--- a/test/ParseSongFilter.cxx
+++ b/test/ParseSongFilter.cxx
@@ -23,7 +23,7 @@
*/
#include "config.h"
-#include "SongFilter.hxx"
+#include "song/Filter.hxx"
#include "util/ConstBuffer.hxx"
#include "util/PrintException.hxx"
diff --git a/test/dump_playlist.cxx b/test/dump_playlist.cxx
index 30c862872..a14268a41 100644
--- a/test/dump_playlist.cxx
+++ b/test/dump_playlist.cxx
@@ -19,7 +19,7 @@
#include "config.h"
#include "TagSave.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "playlist/SongEnumerator.hxx"
#include "input/InputStream.hxx"
#include "config/Global.hxx"
diff --git a/test/test_queue_priority.cxx b/test/test_queue_priority.cxx
index 3282b4219..a3418093c 100644
--- a/test/test_queue_priority.cxx
+++ b/test/test_queue_priority.cxx
@@ -1,6 +1,6 @@
#include "config.h"
#include "queue/Queue.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "util/Macros.hxx"
#include <cppunit/TestFixture.h>
diff --git a/test/test_translate_song.cxx b/test/test_translate_song.cxx
index 4a78af867..10c1acc61 100644
--- a/test/test_translate_song.cxx
+++ b/test/test_translate_song.cxx
@@ -4,7 +4,7 @@
#include "config.h"
#include "playlist/PlaylistSong.hxx"
-#include "DetachedSong.hxx"
+#include "song/DetachedSong.hxx"
#include "SongLoader.hxx"
#include "client/Client.hxx"
#include "tag/Builder.hxx"