mpris: fix potentially invalid seconds count on >1h media
This commit is contained in:
parent
a301b8c4cd
commit
774d8880cd
|
@ -348,7 +348,7 @@ auto Mpris::getDynamicStr(const PlayerInfo& info, bool truncated, bool html) ->
|
||||||
if (showAlbum) dynamic << album << " - ";
|
if (showAlbum) dynamic << album << " - ";
|
||||||
if (showTitle) dynamic << title;
|
if (showTitle) dynamic << title;
|
||||||
if (showLength || showPos) {
|
if (showLength || showPos) {
|
||||||
dynamic << " ";
|
dynamic << ' ';
|
||||||
if (html) dynamic << "<small>";
|
if (html) dynamic << "<small>";
|
||||||
dynamic << '[';
|
dynamic << '[';
|
||||||
if (showPos) {
|
if (showPos) {
|
||||||
|
@ -501,7 +501,7 @@ auto Mpris::getPlayerInfo() -> std::optional<PlayerInfo> {
|
||||||
std::chrono::microseconds len = std::chrono::microseconds(std::strtol(length_, nullptr, 10));
|
std::chrono::microseconds len = std::chrono::microseconds(std::strtol(length_, nullptr, 10));
|
||||||
auto len_h = std::chrono::duration_cast<std::chrono::hours>(len);
|
auto len_h = std::chrono::duration_cast<std::chrono::hours>(len);
|
||||||
auto len_m = std::chrono::duration_cast<std::chrono::minutes>(len - len_h);
|
auto len_m = std::chrono::duration_cast<std::chrono::minutes>(len - len_h);
|
||||||
auto len_s = std::chrono::duration_cast<std::chrono::seconds>(len - len_m);
|
auto len_s = std::chrono::duration_cast<std::chrono::seconds>(len - len_h - len_m);
|
||||||
info.length = fmt::format("{:02}:{:02}:{:02}", len_h.count(), len_m.count(), len_s.count());
|
info.length = fmt::format("{:02}:{:02}:{:02}", len_h.count(), len_m.count(), len_s.count());
|
||||||
g_free(length_);
|
g_free(length_);
|
||||||
}
|
}
|
||||||
|
@ -518,7 +518,7 @@ auto Mpris::getPlayerInfo() -> std::optional<PlayerInfo> {
|
||||||
std::chrono::microseconds len = std::chrono::microseconds(position_);
|
std::chrono::microseconds len = std::chrono::microseconds(position_);
|
||||||
auto len_h = std::chrono::duration_cast<std::chrono::hours>(len);
|
auto len_h = std::chrono::duration_cast<std::chrono::hours>(len);
|
||||||
auto len_m = std::chrono::duration_cast<std::chrono::minutes>(len - len_h);
|
auto len_m = std::chrono::duration_cast<std::chrono::minutes>(len - len_h);
|
||||||
auto len_s = std::chrono::duration_cast<std::chrono::seconds>(len - len_m);
|
auto len_s = std::chrono::duration_cast<std::chrono::seconds>(len - len_h - len_m);
|
||||||
info.position = fmt::format("{:02}:{:02}:{:02}", len_h.count(), len_m.count(), len_s.count());
|
info.position = fmt::format("{:02}:{:02}:{:02}", len_h.count(), len_m.count(), len_s.count());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue