summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/database/tag_parser.cpp12
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);
}
}