diff --git a/include/modules/mpd.hpp b/include/modules/mpd.hpp index 8623c410..5ae0f9e4 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 d1208762..f46393f9 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) {