summaryrefslogtreecommitdiff
path: root/src/tangara/database/track.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-12-23 16:08:47 +1100
committerjacqueline <me@jacqueline.id.au>2024-12-30 14:59:54 +1100
commite9e608cfa09792a64fbda0946c92ec396622a088 (patch)
treece1ad5109ed338c71438e7491481d8d81843093f /src/tangara/database/track.hpp
parente09ab5f6fbcc6395d5f0fbe7e5407483358919c3 (diff)
downloadtangara-fw-e9e608cfa09792a64fbda0946c92ec396622a088.tar.gz
Add a new track tag + index for multiple artists
We still mostly use the singular 'Artist' tag for e.g. displaying a nice name in the now playing screen, but where a track has an 'ARTISTS=' tag, we'll split by semicolon and then use the resulting list to populate an index of tracks by artist
Diffstat (limited to 'src/tangara/database/track.hpp')
-rw-r--r--src/tangara/database/track.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/tangara/database/track.hpp b/src/tangara/database/track.hpp
index 65c5cfec..21d6349d 100644
--- a/src/tangara/database/track.hpp
+++ b/src/tangara/database/track.hpp
@@ -73,6 +73,7 @@ enum class Tag {
kTrack = 5,
kAlbumOrder = 6,
kGenres = 7,
+ kAllArtists = 8,
};
using TagValue = std::variant<std::monostate,
@@ -114,6 +115,9 @@ class TrackTags {
auto artist() const -> const std::optional<std::pmr::string>&;
auto artist(std::string_view) -> void;
+ auto allArtists() const -> std::span<const std::pmr::string>;
+ auto allArtists(const std::string_view) -> void;
+
auto album() const -> const std::optional<std::pmr::string>&;
auto album(std::string_view) -> void;
@@ -144,6 +148,7 @@ class TrackTags {
std::optional<std::pmr::string> title_;
std::optional<std::pmr::string> artist_;
+ std::pmr::vector<std::pmr::string> allArtists_;
std::optional<std::pmr::string> album_;
std::optional<std::pmr::string> album_artist_;
std::optional<uint8_t> disc_;