ohmu
·
2026-10-15
1#pragma once
2
3#include "fastfetch.h"
4#include "modules/battery/option.h"
5
6#define FF_BATTERY_TEMP_UNSET (-DBL_MAX)
7
8typedef enum FFBatteryStatus {
9 FF_BATTERY_STATUS_NONE = 0,
10 FF_BATTERY_STATUS_UNKNOWN = 1 << 0,
11 FF_BATTERY_STATUS_AC_CONNECTED = 1 << 1,
12 FF_BATTERY_STATUS_USB_CONNECTED = 1 << 2,
13 FF_BATTERY_STATUS_WIRELESS_CONNECTED = 1 << 3,
14 FF_BATTERY_STATUS_CHARGING = 1 << 4,
15 FF_BATTERY_STATUS_DISCHARGING = 1 << 5,
16 FF_BATTERY_STATUS_CRITICAL = 1 << 6,
17} FFBatteryStatus;
18
19typedef struct FFBatteryResult {
20 FFstrbuf manufacturer;
21 FFstrbuf manufactureDate;
22 FFstrbuf modelName;
23 FFstrbuf technology;
24 FFstrbuf serial;
25 FFBatteryStatus status;
26 double capacity;
27 double temperature;
28 uint32_t cycleCount;
29 int32_t timeRemaining; // in seconds, -1 if unknown
30} FFBatteryResult;
31
32const char* ffDetectBattery(FFBatteryOptions* options, FFlist* results);