From 76424950e373d3b04ac3dd13019151bfba3e8423 Mon Sep 17 00:00:00 2001 From: sumuel Date: Mon, 17 Aug 2026 20:44:55 +0000 Subject: Add the files --- src/detection/poweradapter/poweradapter_apple.c | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/detection/poweradapter/poweradapter_apple.c (limited to 'src/detection/poweradapter/poweradapter_apple.c') diff --git a/src/detection/poweradapter/poweradapter_apple.c b/src/detection/poweradapter/poweradapter_apple.c new file mode 100644 index 0000000..9a5008a --- /dev/null +++ b/src/detection/poweradapter/poweradapter_apple.c @@ -0,0 +1,39 @@ +#include "fastfetch.h" +#include "poweradapter.h" +#include "common/apple/cf_helpers.h" + +#include +#include + +const char* ffDetectPowerAdapter(FFlist* results) { + FF_CFTYPE_AUTO_RELEASE CFDictionaryRef details = IOPSCopyExternalPowerAdapterDetails(); + if (details && CFDictionaryContainsKey(details, CFSTR(kIOPSPowerAdapterWattsKey))) { + FFPowerAdapterResult* adapter = FF_LIST_ADD(FFPowerAdapterResult, *results); + + ffStrbufInit(&adapter->name); + ffStrbufInit(&adapter->description); + ffStrbufInit(&adapter->manufacturer); + ffStrbufInit(&adapter->modelName); + ffStrbufInit(&adapter->serial); + adapter->watts = 0; + + ffCfDictGetString(details, CFSTR(kIOPSNameKey), &adapter->name); + if (ffCfDictGetString(details, CFSTR("Model"), &adapter->modelName) != NULL) { + int adapterId; + if (ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterIDKey), &adapterId) == 0) { + ffStrbufSetF(&adapter->modelName, "%d", adapterId); + } + } + ffCfDictGetString(details, CFSTR("Manufacturer"), &adapter->manufacturer); + ffCfDictGetString(details, CFSTR("Description"), &adapter->description); + if (ffCfDictGetString(details, CFSTR("SerialString"), &adapter->serial) != NULL) { + int serialNumber; + if (ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterSerialNumberKey), &serialNumber) == 0) { + ffStrbufSetF(&adapter->serial, "%X", serialNumber); + } + } + ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterWattsKey), &adapter->watts); + } + + return NULL; +} -- cgit v1.2.3