Skip to content

Commit 7d77895

Browse files
committed
PowerAdapter (macOS): improve detection for Intel macbook
1 parent 0eb76e9 commit 7d77895

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/detection/poweradapter/poweradapter_apple.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
const char* ffDetectPowerAdapter(FFlist* results)
99
{
10-
FF_CFTYPE_AUTO_RELEASE CFDictionaryRef details = IOPSCopyExternalPowerAdapterDetails();
1110
FFPowerAdapterResult* adapter = ffListAdd(results);
1211

1312
ffStrbufInit(&adapter->name);
@@ -17,13 +16,24 @@ const char* ffDetectPowerAdapter(FFlist* results)
1716
ffStrbufInit(&adapter->serial);
1817
adapter->watts = FF_POWERADAPTER_NOT_CONNECTED;
1918

19+
FF_CFTYPE_AUTO_RELEASE CFDictionaryRef details = IOPSCopyExternalPowerAdapterDetails();
2020
if (details)
2121
{
2222
ffCfDictGetString(details, CFSTR(kIOPSNameKey), &adapter->name);
23-
ffCfDictGetString(details, CFSTR("Model"), &adapter->modelName);
23+
if (ffCfDictGetString(details, CFSTR("Model"), &adapter->modelName) != NULL)
24+
{
25+
int adapterId;
26+
if (ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterIDKey), &adapterId) == 0)
27+
ffStrbufSetF(&adapter->modelName, "%d", adapterId);
28+
}
2429
ffCfDictGetString(details, CFSTR("Manufacturer"), &adapter->manufacturer);
2530
ffCfDictGetString(details, CFSTR("Description"), &adapter->description);
26-
ffCfDictGetString(details, CFSTR("SerialString"), &adapter->serial);
31+
if (ffCfDictGetString(details, CFSTR("SerialString"), &adapter->serial) != NULL)
32+
{
33+
int serialNumber;
34+
if (ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterSerialNumberKey), &serialNumber) == 0)
35+
ffStrbufSetF(&adapter->serial, "%X", serialNumber);
36+
}
2737
ffCfDictGetInt(details, CFSTR(kIOPSPowerAdapterWattsKey), &adapter->watts);
2838
}
2939

0 commit comments

Comments
 (0)