Now manually parse sync/unsync lyrics frames in id3v2 tags
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user