mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
feat(Network): frequency
This commit is contained in:
parent
17291dffdf
commit
cb2d6e1997
@ -36,6 +36,7 @@ class Network : public ALabel {
|
|||||||
int netlinkResponse(void*, uint32_t, uint32_t groups = 0);
|
int netlinkResponse(void*, uint32_t, uint32_t groups = 0);
|
||||||
void parseEssid(struct nlattr**);
|
void parseEssid(struct nlattr**);
|
||||||
void parseSignal(struct nlattr**);
|
void parseSignal(struct nlattr**);
|
||||||
|
void parseFreq(struct nlattr**);
|
||||||
bool associatedOrJoined(struct nlattr**);
|
bool associatedOrJoined(struct nlattr**);
|
||||||
bool checkInterface(int if_index, std::string name);
|
bool checkInterface(int if_index, std::string name);
|
||||||
int getPreferredIface();
|
int getPreferredIface();
|
||||||
@ -63,6 +64,7 @@ class Network : public ALabel {
|
|||||||
bool linked_;
|
bool linked_;
|
||||||
int32_t signal_strength_dbm_;
|
int32_t signal_strength_dbm_;
|
||||||
uint8_t signal_strength_;
|
uint8_t signal_strength_;
|
||||||
|
uint32_t frequency_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace waybar::modules
|
} // namespace waybar::modules
|
||||||
|
@ -10,7 +10,8 @@ waybar::modules::Network::Network(const std::string &id, const Json::Value &conf
|
|||||||
ev_fd_(-1),
|
ev_fd_(-1),
|
||||||
cidr_(-1),
|
cidr_(-1),
|
||||||
signal_strength_dbm_(0),
|
signal_strength_dbm_(0),
|
||||||
signal_strength_(0) {
|
signal_strength_(0),
|
||||||
|
frequency_(0) {
|
||||||
label_.set_name("network");
|
label_.set_name("network");
|
||||||
if (!id.empty()) {
|
if (!id.empty()) {
|
||||||
label_.get_style_context()->add_class(id);
|
label_.get_style_context()->add_class(id);
|
||||||
@ -184,6 +185,7 @@ auto waybar::modules::Network::update() -> void {
|
|||||||
fmt::arg("netmask", netmask_),
|
fmt::arg("netmask", netmask_),
|
||||||
fmt::arg("ipaddr", ipaddr_),
|
fmt::arg("ipaddr", ipaddr_),
|
||||||
fmt::arg("cidr", cidr_),
|
fmt::arg("cidr", cidr_),
|
||||||
|
fmt::arg("frequency", frequency_),
|
||||||
fmt::arg("icon", getIcon(signal_strength_, connectiontype)));
|
fmt::arg("icon", getIcon(signal_strength_, connectiontype)));
|
||||||
label_.set_markup(text);
|
label_.set_markup(text);
|
||||||
if (tooltipEnabled()) {
|
if (tooltipEnabled()) {
|
||||||
@ -196,6 +198,7 @@ auto waybar::modules::Network::update() -> void {
|
|||||||
fmt::arg("netmask", netmask_),
|
fmt::arg("netmask", netmask_),
|
||||||
fmt::arg("ipaddr", ipaddr_),
|
fmt::arg("ipaddr", ipaddr_),
|
||||||
fmt::arg("cidr", cidr_),
|
fmt::arg("cidr", cidr_),
|
||||||
|
fmt::arg("frequency", frequency_),
|
||||||
fmt::arg("icon", getIcon(signal_strength_, connectiontype)));
|
fmt::arg("icon", getIcon(signal_strength_, connectiontype)));
|
||||||
label_.set_tooltip_text(tooltip_text);
|
label_.set_tooltip_text(tooltip_text);
|
||||||
} else {
|
} else {
|
||||||
@ -536,7 +539,7 @@ int waybar::modules::Network::handleScan(struct nl_msg *msg, void *data) {
|
|||||||
}
|
}
|
||||||
net->parseEssid(bss);
|
net->parseEssid(bss);
|
||||||
net->parseSignal(bss);
|
net->parseSignal(bss);
|
||||||
// TODO(someone): parse quality
|
net->parseFreq(bss);
|
||||||
return NL_SKIP;
|
return NL_SKIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -576,6 +579,13 @@ void waybar::modules::Network::parseSignal(struct nlattr **bss) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void waybar::modules::Network::parseFreq(struct nlattr **bss) {
|
||||||
|
if (bss[NL80211_BSS_FREQUENCY] != nullptr) {
|
||||||
|
// in MHz
|
||||||
|
frequency_ = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool waybar::modules::Network::associatedOrJoined(struct nlattr **bss) {
|
bool waybar::modules::Network::associatedOrJoined(struct nlattr **bss) {
|
||||||
if (bss[NL80211_BSS_STATUS] == nullptr) {
|
if (bss[NL80211_BSS_STATUS] == nullptr) {
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user