diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-12-23 16:08:47 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-12-30 14:59:54 +1100 |
| commit | e9e608cfa09792a64fbda0946c92ec396622a088 (patch) | |
| tree | ce1ad5109ed338c71438e7491481d8d81843093f /src/tangara/database/track.hpp | |
| parent | e09ab5f6fbcc6395d5f0fbe7e5407483358919c3 (diff) | |
| download | tangara-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.hpp | 5 |
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_; |
