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 #include +#include #include +#include +#include namespace database { @@ -74,7 +77,14 @@ static void tag(Tagctx* ctx, Aux* aux = reinterpret_cast(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); } }