@@ -28,45 +28,41 @@ static void parsePowerAdapter(FFstrbuf* dir, FF_MAYBE_UNUSED const char* id, FFl
2828 if (ffStrbufIgnCaseEqualS (& tmpBuffer , "Device" ))
2929 return ;
3030
31+ ffStrbufAppendS (dir , "/online" );
32+ char online = '1' ;
33+ ffReadFileData (dir -> chars , sizeof (online ), & online );
34+ ffStrbufSubstrBefore (dir , dirLength );
35+
36+ if (online == '0' )
37+ return ;
38+
3139 //input_power_limit must exist and be not empty
3240 ffStrbufAppendS (dir , "/input_power_limit" );
3341 bool available = ffReadFileBuffer (dir -> chars , & tmpBuffer );
3442 ffStrbufSubstrBefore (dir , dirLength );
3543
3644 if (!available )
3745 return ;
38-
3946 FFPowerAdapterResult * result = ffListAdd (results );
4047 ffStrbufInit (& result -> name );
4148 ffStrbufInit (& result -> description );
42-
43- ffStrbufAppendS (dir , "/online" );
44- char online = '1' ;
45- ffReadFileData (dir -> chars , sizeof (online ), & online );
46- ffStrbufSubstrBefore (dir , dirLength );
47-
48- if (online == '0' )
49- result -> watts = FF_POWERADAPTER_NOT_CONNECTED ;
50- else
51- result -> watts = (int ) (ffStrbufToDouble (& tmpBuffer ) / 1e6 + 0.5 );
52-
53- //At this point, we have a battery. Try to get as much values as possible.
54-
49+ result -> watts = (int ) (ffStrbufToDouble (& tmpBuffer ) / 1e6 + 0.5 );
5550 ffStrbufInit (& result -> manufacturer );
51+ ffStrbufInit (& result -> modelName );
52+ ffStrbufInit (& result -> serial );
53+
5654 ffStrbufAppendS (dir , "/manufacturer" );
5755 if (ffReadFileBuffer (dir -> chars , & result -> manufacturer ))
5856 ffStrbufTrimRightSpace (& result -> manufacturer );
5957 else if (ffStrEquals (id , "macsmc-ac" )) // asahi
6058 ffStrbufSetStatic (& result -> manufacturer , "Apple Inc." );
6159 ffStrbufSubstrBefore (dir , dirLength );
6260
63- ffStrbufInit (& result -> modelName );
6461 ffStrbufAppendS (dir , "/model_name" );
6562 if (ffReadFileBuffer (dir -> chars , & result -> modelName ))
6663 ffStrbufTrimRightSpace (& result -> modelName );
6764 ffStrbufSubstrBefore (dir , dirLength );
6865
69- ffStrbufInit (& result -> serial );
7066 ffStrbufAppendS (dir , "/serial_number" );
7167 if (ffReadFileBuffer (dir -> chars , & result -> serial ))
7268 ffStrbufTrimRightSpace (& result -> serial );
@@ -95,8 +91,5 @@ const char* ffDetectPowerAdapter(FFlist* results)
9591 ffStrbufSubstrBefore (& baseDir , baseDirLength );
9692 }
9793
98- if (results -> length == 0 )
99- return "\"/sys/class/power_supply/\" doesn't contain any power adapter folder" ;
100-
10194 return NULL ;
10295}
0 commit comments