Stop MPRIS module from updating every ~20ms as onPlayerMetadata(), onPlayerPlay()
callbacks get triggered without regard for update interval.pull/2276/head
parent
91588fb8bb
commit
c2f9d889f4
|
@ -80,6 +80,7 @@ class Mpris : public ALabel {
|
||||||
std::string lastPlayer;
|
std::string lastPlayer;
|
||||||
|
|
||||||
util::SleeperThread thread_;
|
util::SleeperThread thread_;
|
||||||
|
std::chrono::time_point<std::chrono::system_clock> last_update_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace waybar::modules::mpris
|
} // namespace waybar::modules::mpris
|
||||||
|
|
|
@ -31,7 +31,8 @@ Mpris::Mpris(const std::string& id, const Json::Value& config)
|
||||||
ellipsis_("\u2026"),
|
ellipsis_("\u2026"),
|
||||||
player_("playerctld"),
|
player_("playerctld"),
|
||||||
manager(),
|
manager(),
|
||||||
player() {
|
player(),
|
||||||
|
last_update_(std::chrono::system_clock::now() - interval_) {
|
||||||
if (config_["format-playing"].isString()) {
|
if (config_["format-playing"].isString()) {
|
||||||
format_playing_ = config_["format-playing"].asString();
|
format_playing_ = config_["format-playing"].asString();
|
||||||
}
|
}
|
||||||
|
@ -559,6 +560,10 @@ bool Mpris::handleToggle(GdkEventButton* const& e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Mpris::update() -> void {
|
auto Mpris::update() -> void {
|
||||||
|
const auto now = std::chrono::system_clock::now();
|
||||||
|
if (now - last_update_ < interval_) return;
|
||||||
|
last_update_ = now;
|
||||||
|
|
||||||
auto opt = getPlayerInfo();
|
auto opt = getPlayerInfo();
|
||||||
if (!opt) {
|
if (!opt) {
|
||||||
event_box_.set_visible(false);
|
event_box_.set_visible(false);
|
||||||
|
|
Loading…
Reference in New Issue