summaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-12-27 21:26:03 +0000
committer0scar <qgt268@alumni.ku.dk>2024-12-27 21:26:03 +0000
commit0a1b29fd0e008522ad06c7d369c6119f92134080 (patch)
tree204dce45803b24525e71da26957bcd27f9082ed9 /status.c
parent0fc22734cd8cbc55468a586605e6cab6d431c840 (diff)
Use a linter
Diffstat (limited to 'status.c')
-rw-r--r--status.c120
1 files changed, 63 insertions, 57 deletions
diff --git a/status.c b/status.c
index 46fd24d..90ec3d3 100644
--- a/status.c
+++ b/status.c
@@ -1,26 +1,25 @@
#include <errno.h>
#include <ifaddrs.h>
-#include <linux/wireless.h>
#include <linux/net.h>
+#include <linux/wireless.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define __USE_MISC
-#include <sys/time.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <netinet/in.h>
#include <sys/ioctl.h>
-#include <sys/types.h>
#include <sys/socket.h>
-#include <unistd.h>
+#include <sys/time.h>
+#include <sys/types.h>
#include <time.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
+#include <unistd.h>
#define ELEMENT_SEPERATOR " "
-
#define STATUS_STRBUF_SZ 512
#define ELEMENT_STRBUF_SZ 64
@@ -33,8 +32,8 @@ struct element {
char buf[ELEMENT_STRBUF_SZ];
};
-
-void date(char* buf) {
+void
+date(char* buf) {
time_t now = time(NULL);
struct tm tm;
tm = *localtime(&now);
@@ -42,7 +41,6 @@ void date(char* buf) {
strftime(buf, ELEMENT_STRBUF_SZ, "%Y-%m-%d %H:%M", &tm);
}
-
enum battery_status_charge {
bat_unknown,
bat_not_charging,
@@ -69,7 +67,8 @@ char* battery_level_icon[] = {
"", /* "\uf578" */
};
-struct battery_status get_battery_status(const char* buf) {
+struct battery_status
+get_battery_status(const char* buf) {
const char path_prefix[] = "/sys/class/power_supply/";
char charge_path[128];
@@ -78,7 +77,7 @@ struct battery_status get_battery_status(const char* buf) {
char charge_str[512];
char capacity_str[512];
- int charge = 0;
+ int charge = 0;
int capacity = 0;
FILE* bat_charge;
@@ -95,7 +94,7 @@ struct battery_status get_battery_status(const char* buf) {
strcat(capacity_path, buf);
strcat(capacity_path, "/energy_full");
- bat_charge = fopen(charge_path, "r");
+ bat_charge = fopen(charge_path, "r");
bat_capacity = fopen(capacity_path, "r");
if (!bat_charge) {
@@ -113,79 +112,88 @@ struct battery_status get_battery_status(const char* buf) {
fclose(bat_charge);
fclose(bat_capacity);
- charge = atoi(charge_str);
+ charge = atoi(charge_str);
capacity = atoi(capacity_str);
return (struct battery_status){bat_unknown, (float)charge / capacity};
}
-void get_battery1_status(char* buf) {
+void
+get_battery1_status(char* buf) {
struct battery_status s = get_battery_status("BAT1");
- int batlvl = (int)(s.charge*100.f) / 10;
- char* batlvl_icon = battery_level_icon[batlvl];
+ int batlvl = (int)(s.charge * 100.f) / 10;
+ char* batlvl_icon = battery_level_icon[batlvl];
snprintf(buf, ELEMENT_STRBUF_SZ, "%s %.1f%%", batlvl_icon, 100.f * s.charge);
}
-void get_battery0_status(char* buf) {
+void
+get_battery0_status(char* buf) {
struct battery_status s = get_battery_status("BAT0");
- int batlvl = (int)(s.charge*100.f) / 10;
- char* batlvl_icon = battery_level_icon[batlvl];
+ int batlvl = (int)(s.charge * 100.f) / 10;
+ char* batlvl_icon = battery_level_icon[batlvl];
snprintf(buf, ELEMENT_STRBUF_SZ, "%s %.1f%%", batlvl_icon, 100.f * s.charge);
}
/* todo, remake this to enumerate all possible batteries */
-void get_all_bat_status(char* buf) {
+void
+get_all_bat_status(char* buf) {
struct battery_status s = get_battery_status("BAT0");
struct battery_status t = get_battery_status("BAT1");
- s.charge = (s.charge + t.charge) / 2.f;
+ s.charge = (s.charge + t.charge) / 2.f;
- int batlvl = (int)(s.charge*100.f) / 10;
- char* batlvl_icon = battery_level_icon[batlvl];
+ int batlvl = (int)(s.charge * 100.f) / 10;
+ char* batlvl_icon = battery_level_icon[batlvl];
/*snprintf(buf, ELEMENT_STRBUF_SZ, "%.1f%%", 100.f * s.charge);*/
snprintf(buf, ELEMENT_STRBUF_SZ, "%s %.1f%%", batlvl_icon, 100.f * s.charge);
}
-
-void get_net_link_status(char* buf) {
- struct ifaddrs *if_addr;
+void
+get_net_link_status(char* buf) {
+ struct ifaddrs* if_addr;
size_t n = 0;
getifaddrs(&if_addr);
- for (struct ifaddrs *ifa = if_addr; ifa != NULL; ifa = ifa->ifa_next) {
+ for (struct ifaddrs* ifa = if_addr; ifa != NULL; ifa = ifa->ifa_next) {
/* Ignore loopback interface flag */
- if (ifa->ifa_flags & IFF_LOOPBACK) continue;
+ if (ifa->ifa_flags & IFF_LOOPBACK)
+ continue;
/* Ignore interfaces without an address */
- if (ifa->ifa_addr == NULL) continue;
+ if (ifa->ifa_addr == NULL)
+ continue;
/* Ignore everythings not an IPv4 link */
/* (AF_PACKET might be usefull if you want to display tx) */
- if (ifa->ifa_addr->sa_family != AF_INET) continue;
+ if (ifa->ifa_addr->sa_family != AF_INET)
+ continue;
if (ifa->ifa_flags & IFF_UP) {
size_t l = strlen(ifa->ifa_name);
struct iwreq wreq;
int sock;
- const size_t ipv6_charlen = 8*4+7;
+ const size_t ipv6_charlen = 8 * 4 + 7;
char address[ipv6_charlen + 1]; // in case of ipv6, plus null-byte
- char id[IW_ESSID_MAX_SIZE+1];
+ char id[IW_ESSID_MAX_SIZE + 1];
/* Get the IP address */
memset(address, 0, ipv6_charlen + 1);
- /* Use sa_family instead of hardcoding AF_INET, just in case we get ip6'ed */
+ /* Use sa_family instead of hardcoding AF_INET, just in case
+ * we get ip6'ed */
/* Does inet_ntop add a null-byte? */
- inet_ntop(ifa->ifa_addr->sa_family, (void*)&((struct sockaddr_in*)ifa->ifa_addr)->sin_addr, address, ipv6_charlen);
+ inet_ntop(ifa->ifa_addr->sa_family,
+ (void*)&((struct sockaddr_in*)ifa->ifa_addr)->sin_addr, address,
+ ipv6_charlen);
/* Get the SSID */
- memset(id, 0, IW_ESSID_MAX_SIZE+1);
+ memset(id, 0, IW_ESSID_MAX_SIZE + 1);
memset(&wreq, 0, sizeof(struct iwreq));
sock = socket(AF_INET, SOCK_DGRAM, 0);
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, ifa->ifa_name, l);
@@ -193,17 +201,14 @@ void get_net_link_status(char* buf) {
strncpy(wreq.ifr_name, ifa->ifa_name, l);
wreq.u.essid.pointer = id;
- wreq.u.essid.length = IW_ESSID_MAX_SIZE;
+ wreq.u.essid.length = IW_ESSID_MAX_SIZE;
ioctl(sock, SIOCGIWESSID, &wreq);
-
-
-
strncpy(buf + n, ifa->ifa_name, l);
size_t ssid_len = strlen(id);
if (ssid_len > 0) {
- buf[n + l] = ' ';
+ buf[n + l] = ' ';
buf[n + l + 1] = '(';
strncpy(buf + n + l + 2, id, ssid_len);
l += ssid_len;
@@ -214,7 +219,6 @@ void get_net_link_status(char* buf) {
strcat(buf + n, address);
n += strlen(address);
-
strcat(buf + n, " ");
n += 2;
@@ -224,18 +228,18 @@ void get_net_link_status(char* buf) {
static struct element statusbar[] = {
- {.f = get_net_link_status, .fire_interval = {5,0}, .fire_previous = {0}, .buf = {0} },
- {.f = get_all_bat_status, .fire_interval = {60,0}, .fire_previous = {0}, .buf = {0} },
- {.f = date, .fire_interval = {2,500000}, .fire_previous = {0}, .buf = {0} },
+ {.f = get_net_link_status, .fire_interval = {5, 0}, .fire_previous = {0}, .buf = {0}},
+ {.f = get_all_bat_status, .fire_interval = {60, 0}, .fire_previous = {0}, .buf = {0}},
+ {.f = date, .fire_interval = {2, 500000}, .fire_previous = {0}, .buf = {0}},
};
-int main(void) {
- const int num_elems = sizeof(statusbar)/sizeof(statusbar[0]);
+int
+main(void) {
+ const int num_elems = sizeof(statusbar) / sizeof(statusbar[0]);
struct timeval now;
const struct timeval one_minute = {60, 0};
-
while (true) {
gettimeofday(&now, NULL);
unsigned i;
@@ -246,11 +250,12 @@ int main(void) {
for (i = 0; i < num_elems; i++) {
struct timeval next_fire;
- timeradd(&statusbar[i].fire_previous, &statusbar[i].fire_interval, &next_fire);
+ timeradd(&statusbar[i].fire_previous, &statusbar[i].fire_interval,
+ &next_fire);
- if (timercmp(&next_fire, &now, >)) {
+ if (timercmp(&next_fire, &now, >)) {
/* Check if this is the next to-be-updated element */
- if (timercmp(&next_fire, &next_update, <)) {
+ if (timercmp(&next_fire, &next_update, <)) {
next_update = next_fire;
}
continue;
@@ -262,8 +267,9 @@ int main(void) {
statusbar[i].fire_previous = now;
/* Check if this element needs to be refreshed next, again */
- timeradd(&statusbar[i].fire_previous, &statusbar[i].fire_interval, &next_fire);
- if (timercmp(&next_fire, &next_update, <)) {
+ timeradd(&statusbar[i].fire_previous, &statusbar[i].fire_interval,
+ &next_fire);
+ if (timercmp(&next_fire, &next_update, <)) {
next_update = next_fire;
}
@@ -272,7 +278,6 @@ int main(void) {
* statusbar[i].fire_interval.tv_usec,
* (char*)statusbar[i].buf);
*/
-
}
char buf[STATUS_STRBUF_SZ];
@@ -280,7 +285,8 @@ int main(void) {
for (i = 0; i < num_elems; i++) {
strcat(buf, statusbar[i].buf);
- if (i != num_elems - 1) strcat(buf, ELEMENT_SEPERATOR);
+ if (i != num_elems - 1)
+ strcat(buf, ELEMENT_SEPERATOR);
}
/* strcat(buf, "\0"); */
@@ -289,7 +295,7 @@ int main(void) {
fflush(stdout);
timersub(&next_update, &now, &next_update);
- usleep(next_update.tv_sec*1000*1000+next_update.tv_usec);
+ usleep(next_update.tv_sec * 1000 * 1000 + next_update.tv_usec);
}
return 0;