From 71db83f8065dd0f749ae25d6c76fabc72f5716e3 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Thu, 8 Feb 2024 13:51:30 +0800 Subject: [PATCH] PowerAdapter (Linux): don't print `not connected` either To align result to macOS --- src/detection/poweradapter/poweradapter.h | 2 -- .../poweradapter/poweradapter_apple.c | 2 +- .../poweradapter/poweradapter_linux.c | 31 +++++++------------ src/modules/poweradapter/poweradapter.c | 2 -- 4 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/detection/poweradapter/poweradapter.h b/src/detection/poweradapter/poweradapter.h index 8af98a6fa..43c3a48e9 100644 --- a/src/detection/poweradapter/poweradapter.h +++ b/src/detection/poweradapter/poweradapter.h @@ -13,5 +13,3 @@ typedef struct FFPowerAdapterResult } FFPowerAdapterResult; const char* ffDetectPowerAdapter(FFlist* results); - -#define FF_POWERADAPTER_NOT_CONNECTED -1 diff --git a/src/detection/poweradapter/poweradapter_apple.c b/src/detection/poweradapter/poweradapter_apple.c index 1a1b6866b..35cba4d5a 100644 --- a/src/detection/poweradapter/poweradapter_apple.c +++ b/src/detection/poweradapter/poweradapter_apple.c @@ -17,7 +17,7 @@ const char* ffDetectPowerAdapter(FFlist* results) ffStrbufInit(&adapter->manufacturer); ffStrbufInit(&adapter->modelName); ffStrbufInit(&adapter->serial); - adapter->watts = FF_POWERADAPTER_NOT_CONNECTED; + adapter->watts = 0; ffCfDictGetString(details, CFSTR(kIOPSNameKey), &adapter->name); if (ffCfDictGetString(details, CFSTR("Model"), &adapter->modelName) != NULL) diff --git a/src/detection/poweradapter/poweradapter_linux.c b/src/detection/poweradapter/poweradapter_linux.c index 8058ad7c6..5c5a3f997 100644 --- a/src/detection/poweradapter/poweradapter_linux.c +++ b/src/detection/poweradapter/poweradapter_linux.c @@ -28,6 +28,14 @@ static void parsePowerAdapter(FFstrbuf* dir, FF_MAYBE_UNUSED const char* id, FFl if(ffStrbufIgnCaseEqualS(&tmpBuffer, "Device")) return; + ffStrbufAppendS(dir, "/online"); + char online = '1'; + ffReadFileData(dir->chars, sizeof(online), &online); + ffStrbufSubstrBefore(dir, dirLength); + + if (online == '0') + return; + //input_power_limit must exist and be not empty ffStrbufAppendS(dir, "/input_power_limit"); bool available = ffReadFileBuffer(dir->chars, &tmpBuffer); @@ -35,24 +43,14 @@ static void parsePowerAdapter(FFstrbuf* dir, FF_MAYBE_UNUSED const char* id, FFl if (!available) return; - FFPowerAdapterResult* result = ffListAdd(results); ffStrbufInit(&result->name); ffStrbufInit(&result->description); - - ffStrbufAppendS(dir, "/online"); - char online = '1'; - ffReadFileData(dir->chars, sizeof(online), &online); - ffStrbufSubstrBefore(dir, dirLength); - - if (online == '0') - result->watts = FF_POWERADAPTER_NOT_CONNECTED; - else - result->watts = (int) (ffStrbufToDouble(&tmpBuffer) / 1e6 + 0.5); - - //At this point, we have a battery. Try to get as much values as possible. - + result->watts = (int) (ffStrbufToDouble(&tmpBuffer) / 1e6 + 0.5); ffStrbufInit(&result->manufacturer); + ffStrbufInit(&result->modelName); + ffStrbufInit(&result->serial); + ffStrbufAppendS(dir, "/manufacturer"); if (ffReadFileBuffer(dir->chars, &result->manufacturer)) ffStrbufTrimRightSpace(&result->manufacturer); @@ -60,13 +58,11 @@ static void parsePowerAdapter(FFstrbuf* dir, FF_MAYBE_UNUSED const char* id, FFl ffStrbufSetStatic(&result->manufacturer, "Apple Inc."); ffStrbufSubstrBefore(dir, dirLength); - ffStrbufInit(&result->modelName); ffStrbufAppendS(dir, "/model_name"); if (ffReadFileBuffer(dir->chars, &result->modelName)) ffStrbufTrimRightSpace(&result->modelName); ffStrbufSubstrBefore(dir, dirLength); - ffStrbufInit(&result->serial); ffStrbufAppendS(dir, "/serial_number"); if (ffReadFileBuffer(dir->chars, &result->serial)) ffStrbufTrimRightSpace(&result->serial); @@ -95,8 +91,5 @@ const char* ffDetectPowerAdapter(FFlist* results) ffStrbufSubstrBefore(&baseDir, baseDirLength); } - if(results->length == 0) - return "\"/sys/class/power_supply/\" doesn't contain any power adapter folder"; - return NULL; } diff --git a/src/modules/poweradapter/poweradapter.c b/src/modules/poweradapter/poweradapter.c index 23cd10732..5bc8a0556 100644 --- a/src/modules/poweradapter/poweradapter.c +++ b/src/modules/poweradapter/poweradapter.c @@ -33,8 +33,6 @@ void ffPrintPowerAdapter(FFPowerAdapterOptions* options) if(result->name.length > 0) puts(result->name.chars); - else if(result->watts == FF_POWERADAPTER_NOT_CONNECTED) - puts("not connected"); else printf("%dW\n", result->watts); }