Merge pull request #5 from Alexays/signalDbm

feat(network): signal strength in dBm
This commit is contained in:
Alex
2018-08-09 22:38:13 +02:00
committed by GitHub
4 changed files with 19 additions and 5 deletions

View File

@ -16,7 +16,10 @@ auto waybar::modules::Network::update() -> void
{
_getInfo();
auto format = _config["format"] ? _config["format"].asString() : "{}";
_label.set_text(fmt::format(format, _essid));
_label.set_text(fmt::format(format,
fmt::arg("essid", _essid),
fmt::arg("signalStrength", _signalStrength)
));
}
int waybar::modules::Network::_scanCb(struct nl_msg *msg, void *data) {
@ -44,7 +47,8 @@ int waybar::modules::Network::_scanCb(struct nl_msg *msg, void *data) {
if (!net->_associatedOrJoined(bss))
return NL_SKIP;
net->_parseEssid(bss);
// TODO: parse signal
net->_parseSignal(bss);
// TODO: parse quality
return NL_SKIP;
}
@ -70,6 +74,14 @@ void waybar::modules::Network::_parseEssid(struct nlattr **bss)
}
}
void waybar::modules::Network::_parseSignal(struct nlattr **bss) {
if (bss[NL80211_BSS_SIGNAL_MBM] != nullptr) {
// signalstrength in dBm
_signalStrength =
static_cast<int>(nla_get_u32(bss[NL80211_BSS_SIGNAL_MBM])) / 100;
}
}
bool waybar::modules::Network::_associatedOrJoined(struct nlattr** bss)
{
if (!bss[NL80211_BSS_STATUS])

View File

@ -59,7 +59,7 @@ void waybar::modules::Workspaces::_updateThread()
{
_thread = new waybar::util::SleeperThread([this] {
update();
_thread->sleep_for(waybar::chrono::milliseconds(250));
_thread->sleep_for(waybar::chrono::milliseconds(150));
});
}