diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-06-23 21:32:47 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-06-23 21:33:14 +1000 |
| commit | 072c2c23e58d2ef9620c9f4bd7e8d522afdc5cd9 (patch) | |
| tree | f7035f78449177b4c573367fd782b430217ce081 /src | |
| parent | 245d9ff4b9cde1f487beed76085a52f3f2d6d26c (diff) | |
| download | tangara-fw-072c2c23e58d2ef9620c9f4bd7e8d522afdc5cd9.tar.gz | |
Parse and zero-pad track numbers
Diffstat (limited to 'src')
| -rw-r--r-- | src/database/tag_parser.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/database/tag_parser.cpp b/src/database/tag_parser.cpp index 49febe27..b2d206d2 100644 --- a/src/database/tag_parser.cpp +++ b/src/database/tag_parser.cpp @@ -8,7 +8,10 @@ #include <esp_log.h> #include <ff.h> +#include <stdint.h> #include <tags.h> +#include <cstdlib> +#include <iomanip> namespace database { @@ -74,7 +77,14 @@ static void tag(Tagctx* ctx, Aux* aux = reinterpret_cast<Aux*>(ctx->aux); auto tag = convert_tag(t); if (tag) { - aux->tags->set(*tag, v); + std::string value{v}; + if (*tag == Tag::kAlbumTrack) { + uint32_t as_int = std::atoi(v); + std::ostringstream oss; + oss << std::setw(4) << std::setfill('0') << as_int; + value = oss.str(); + } + aux->tags->set(*tag, value); } } |
