diff --git a/src/libs/subsonic/impl/ProtocolVersion.hpp b/src/libs/subsonic/impl/ProtocolVersion.hpp index 69aed228..9a8edfe3 100644 --- a/src/libs/subsonic/impl/ProtocolVersion.hpp +++ b/src/libs/subsonic/impl/ProtocolVersion.hpp @@ -34,7 +34,7 @@ namespace lms::api::subsonic }; static inline constexpr ProtocolVersion defaultServerProtocolVersion{ 1, 16, 0 }; - static inline constexpr std::string_view serverVersion{ "6" }; + static inline constexpr std::string_view serverVersion{ "7" }; } // namespace lms::api::subsonic namespace lms::core::stringUtils diff --git a/src/libs/subsonic/impl/responses/Album.cpp b/src/libs/subsonic/impl/responses/Album.cpp index 5a33db2e..3ace6ba1 100644 --- a/src/libs/subsonic/impl/responses/Album.cpp +++ b/src/libs/subsonic/impl/responses/Album.cpp @@ -184,11 +184,25 @@ namespace lms::api::subsonic }); } - albumNode.createEmptyArrayChild("artists"); - for (const Artist::pointer& artist : release->getReleaseArtists()) - albumNode.addArrayChild("artists", createArtistNode(artist)); + if (id3) + { + albumNode.createEmptyArrayChild("artists"); + for (const Artist::pointer& artist : release->getReleaseArtists()) + albumNode.addArrayChild("artists", createArtistNode(artist)); - albumNode.setAttribute("displayArtist", release->getArtistDisplayName()); + albumNode.setAttribute("displayArtist", release->getArtistDisplayName()); + } + else + { + albumNode.createEmptyArrayChild("albumArtists"); + for (const Artist::pointer& artist : release->getReleaseArtists()) + albumNode.addArrayChild("albumArtists", createArtistNode(artist)); + + albumNode.setAttribute("displayAlbumArtist", release->getArtistDisplayName()); + + albumNode.createEmptyArrayChild("artists"); + albumNode.setAttribute("displayArtist", ""); + } albumNode.addChild("originalReleaseDate", createItemDateNode(release->getOriginalDate(), release->getOriginalYear())); albumNode.setAttribute("isCompilation", release->isCompilation());