From e12ac1d9632856237388614bf393c7338500e00a Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 7 Jun 2023 15:39:28 +1000 Subject: Do some prep cleanup for multiple filetypes --- src/database/include/song.hpp | 7 +++++++ src/database/tag_parser.cpp | 10 ++++++++++ 2 files changed, 17 insertions(+) (limited to 'src/database') diff --git a/src/database/include/song.hpp b/src/database/include/song.hpp index 2791c0ca..d03660dc 100644 --- a/src/database/include/song.hpp +++ b/src/database/include/song.hpp @@ -36,6 +36,9 @@ typedef uint32_t SongId; enum class Encoding { kUnsupported = 0, kMp3 = 1, + kWav = 2, + kOgg = 3, + kFlac = 4, }; /* @@ -53,6 +56,10 @@ struct SongTags { std::optional artist; std::optional album; + std::optional channels; + std::optional sample_rate; + std::optional bits_per_sample; + /* * Returns a hash of the 'identifying' tags of this song. That is, a hash that * can be used to determine if one song is likely the same as another, across diff --git a/src/database/tag_parser.cpp b/src/database/tag_parser.cpp index d6109671..27d4163f 100644 --- a/src/database/tag_parser.cpp +++ b/src/database/tag_parser.cpp @@ -107,6 +107,16 @@ auto TagParserImpl::ReadAndParseTags(const std::string& path, SongTags* out) out->encoding = Encoding::kUnsupported; } + if (ctx.channels > 0) { + out->channels = ctx.channels; + } + if (ctx.samplerate > 0) { + out->sample_rate = ctx.samplerate; + } + if (ctx.bitrate > 0) { + out->bits_per_sample = ctx.bitrate; + } + return true; } -- cgit v1.2.3