From 557b786ce096309fecc6daf1786b990ebe434170 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Wed, 17 Apr 2019 11:01:35 +0200 Subject: [PATCH] feat(mpd): Allow for specifying the reconnect interval --- include/modules/mpd.hpp | 3 ++- src/modules/mpd.cpp | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/modules/mpd.hpp b/include/modules/mpd.hpp index 8623c41..5ae0f9e 100644 --- a/include/modules/mpd.hpp +++ b/include/modules/mpd.hpp @@ -27,7 +27,8 @@ class MPD : public ALabel { // Not using unique_ptr since we don't manage the pointer // (It's either nullptr, or from the config) - const char* server; + const char* server_; + unsigned port_; unique_connection connection_; unique_status status_; diff --git a/src/modules/mpd.cpp b/src/modules/mpd.cpp index d120876..f46393f 100644 --- a/src/modules/mpd.cpp +++ b/src/modules/mpd.cpp @@ -3,8 +3,9 @@ #include waybar::modules::MPD::MPD(const std::string& id, const Json::Value &config) - : ALabel(config, "{album} - {artist} - {title}", 2), - server(nullptr), + : ALabel(config, "{album} - {artist} - {title}", 5), + server_(nullptr), + port_(config["port"].asUInt()), connection_(nullptr, &mpd_connection_free), status_(nullptr, &mpd_status_free), song_(nullptr, &mpd_song_free) { @@ -14,7 +15,7 @@ waybar::modules::MPD::MPD(const std::string& id, const Json::Value &config) } if (!config["server"].isNull()) { - server = config["server"].asCString(); + server_ = config["server"].asCString(); } worker_ = worker(); @@ -40,7 +41,7 @@ std::thread waybar::modules::MPD::worker() { if (connection_ == nullptr) { // Retry periodically if no connection update(); - std::this_thread::sleep_for(std::chrono::seconds(2)); + std::this_thread::sleep_for(interval_); } else { // Else, update on any event waitForEvent(); @@ -117,7 +118,7 @@ void waybar::modules::MPD::tryConnect() { } connection_ = unique_connection( - mpd_connection_new(server, config_["port"].asUInt(), 5'000), + mpd_connection_new(server_, port_, 5'000), &mpd_connection_free); if (connection_ == nullptr) {