mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-11-09 22:50:38 +01:00
c7ecc33b64
Improves performance of module Sound and PhysicalMemory
40 lines
1.6 KiB
C
40 lines
1.6 KiB
C
#include "fastfetch.h"
|
|
#include "poweradapter.h"
|
|
#include "common/apple/cf_helpers.h"
|
|
|
|
#include <IOKit/ps/IOPowerSources.h>
|
|
#include <IOKit/ps/IOPSKeys.h>
|
|
|
|
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;
|
|
}
|