77
88const 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