This commit is contained in:
Alex
2018-08-20 14:50:45 +02:00
committed by GitHub
parent b7e3d10fb7
commit 49232eed8d
30 changed files with 261 additions and 235 deletions

View File

@ -1,7 +1,7 @@
#include "modules/battery.hpp"
waybar::modules::Battery::Battery(Json::Value config)
: ALabel(std::move(config))
waybar::modules::Battery::Battery(const Json::Value& config)
: ALabel(config)
{
try {
for (auto &node : fs::directory_iterator(data_dir_)) {
@ -23,25 +23,29 @@ waybar::modules::Battery::Battery(Json::Value config)
for (auto &bat : batteries_) {
inotify_add_watch(fd_, (bat / "uevent").c_str(), IN_ACCESS);
}
// Trigger first values
update();
label_.set_name("battery");
thread_.sig_update.connect(sigc::mem_fun(*this, &Battery::update));
worker();
}
waybar::modules::Battery::~Battery()
{
close(fd_);
}
void waybar::modules::Battery::worker()
{
// Trigger first values
dp.emit();
thread_ = [this] {
struct inotify_event event = {0};
int nbytes = read(fd_, &event, sizeof(event));
if (nbytes != sizeof(event)) {
return;
}
thread_.emit();
dp.emit();
};
}
waybar::modules::Battery::~Battery()
{
close(fd_);
}
auto waybar::modules::Battery::update() -> void
{
try {