Now manually parse sync/unsync lyrics frames in id3v2 tags

This commit is contained in:
emeric
2024-10-27 15:21:54 +01:00
parent 1e3dad7acc
commit f613d16fc2
14 changed files with 193 additions and 58 deletions
+13
View File
@@ -463,4 +463,17 @@ namespace lms::core::stringUtils
// assume UTC
return date.toString("yyyy-MM-dd").toUTF8();
}
std::string formatTimestamp(std::chrono::milliseconds timestamp)
{
using namespace std::chrono;
const auto mins{ duration_cast<minutes>(timestamp).count() };
timestamp -= duration_cast<milliseconds>(minutes{ mins });
const auto secs{ duration_cast<seconds>(timestamp).count() };
timestamp -= duration_cast<milliseconds>(seconds{ secs });
const auto millis{ timestamp.count() };
return "[" + std::to_string(mins) + ":" + (secs < 10 ? "0" : "") + std::to_string(secs) + "." + (millis < 100 ? (millis < 10 ? "00" : "0") : "") + std::to_string(millis) + "]";
}
} // namespace lms::core::stringUtils
+4
View File
@@ -19,6 +19,7 @@
#pragma once
#include <chrono>
#include <initializer_list>
#include <optional>
#include <span>
@@ -113,4 +114,7 @@ namespace lms::core::stringUtils
[[nodiscard]] std::string toISO8601String(const Wt::WDateTime& dateTime);
[[nodiscard]] std::string toISO8601String(const Wt::WDate& date);
// to "[minutes:seconds.milliseconds]"
std::string formatTimestamp(std::chrono::milliseconds timestamp);
} // namespace lms::core::stringUtils