mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-12 10:22:12 +02:00
Temps (Linux): simplify
This commit is contained in:
@@ -10,12 +10,19 @@ static bool parseHwmonDir(FFstrbuf* dir, FFTempValue* value)
|
||||
{
|
||||
//https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface
|
||||
uint32_t dirLength = dir->length;
|
||||
ffStrbufAppendS(dir, "temp1_input");
|
||||
|
||||
FF_STRBUF_AUTO_DESTROY valueBuffer = ffStrbufCreate();
|
||||
|
||||
ffStrbufAppendS(dir, "temp1_input");
|
||||
if(!ffReadFileBuffer(dir->chars, &valueBuffer))
|
||||
return false;
|
||||
{
|
||||
// Some badly implemented system put temp file in /hwmonN/device
|
||||
ffStrbufSubstrBefore(dir, dirLength);
|
||||
ffStrbufAppendS(dir, "/device");
|
||||
dirLength = dir->length;
|
||||
|
||||
if(!ffReadFileBuffer(dir->chars, &valueBuffer))
|
||||
return false;
|
||||
}
|
||||
|
||||
ffStrbufSubstrBefore(dir, dirLength);
|
||||
|
||||
@@ -29,33 +36,7 @@ static bool parseHwmonDir(FFstrbuf* dir, FFTempValue* value)
|
||||
ffStrbufTrimRightSpace(&value->name);
|
||||
ffStrbufSubstrBefore(dir, dirLength);
|
||||
|
||||
ffStrbufAppendS(dir, "device/class");
|
||||
if(!ffReadFileBuffer(dir->chars, &valueBuffer))
|
||||
{
|
||||
ffStrbufSubstrBefore(dir, dirLength);
|
||||
ffStrbufAppendS(dir, "device/device/class");
|
||||
ffReadFileBuffer(dir->chars, &valueBuffer);
|
||||
}
|
||||
ffStrbufTrimRightSpace(&valueBuffer);
|
||||
ffStrbufSubstrBefore(dir, dirLength);
|
||||
if(valueBuffer.length)
|
||||
value->deviceClass = (uint32_t) strtoul(valueBuffer.chars, NULL, 16);
|
||||
|
||||
ffStrbufClear(&valueBuffer);
|
||||
ffStrbufEnsureFree(&valueBuffer, 64);
|
||||
ffStrbufAppendS(dir, "device");
|
||||
ssize_t linkLen = readlink(dir->chars, valueBuffer.chars, valueBuffer.allocated - 1);
|
||||
if (linkLen > 0)
|
||||
{
|
||||
valueBuffer.length = (uint32_t) linkLen;
|
||||
valueBuffer.chars[linkLen] = 0;
|
||||
ffStrbufSubstrAfterLastC(&valueBuffer, '/');
|
||||
ffStrbufInitMove(&value->deviceName, &valueBuffer);
|
||||
}
|
||||
else
|
||||
ffStrbufInit(&value->deviceName);
|
||||
|
||||
return value->name.length > 0 || value->deviceClass > 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
const FFlist* ffDetectTemps(void)
|
||||
@@ -87,7 +68,6 @@ const FFlist* ffDetectTemps(void)
|
||||
|
||||
FFTempValue* temp = ffListAdd(&result);
|
||||
ffStrbufInit(&temp->name);
|
||||
temp->deviceClass = 0;
|
||||
if(!parseHwmonDir(&baseDir, temp))
|
||||
{
|
||||
ffStrbufDestroy(&temp->name);
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
typedef struct FFTempValue
|
||||
{
|
||||
FFstrbuf name;
|
||||
FFstrbuf deviceName;
|
||||
uint32_t deviceClass;
|
||||
double value;
|
||||
} FFTempValue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user