master ohmu/fastfetch-openbsd / src / detection / battery / battery.h
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);