DisplayServer: make brightness detection actually work (Linux)

This commit is contained in:
李通洲
2023-01-09 10:42:52 +08:00
parent 4daf3016f8
commit 0b12e73eef
@@ -25,15 +25,18 @@ static void parseBacklight(FFDisplayServerResult* result)
ffStrbufInit(&buffer);
struct dirent* entry;
if((entry = readdir(dirp)) != NULL)
while((entry = readdir(dirp)) != NULL)
{
if(strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
continue;
ffStrbufAppendS(&backlightDir, entry->d_name);
ffStrbufAppendS(&backlightDir, "/actual_brightness");
if(ffReadFileBuffer(backlightDir.chars, &buffer))
{
double actualBrightness = ffStrbufToDouble(&buffer);
ffStrbufSubstrBefore(&backlightDir, backlightDirLength);
ffStrbufAppendS(&backlightDir, entry->d_name);
ffStrbufAppendS(&backlightDir, "/max_brightness");
if(ffReadFileBuffer(backlightDir.chars, &buffer))
{
@@ -43,6 +46,8 @@ static void parseBacklight(FFDisplayServerResult* result)
resolution->brightness = (int) (actualBrightness * 100 / maxBrightness);
}
}
break;
}
}