From a817f7eb24f8166685a679298ae3bab1924158bf Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Fri, 7 Aug 2026 03:17:02 +0000 Subject: [PATCH 21/38] displayserver: add ffdsParseRefreshRate() for CG_LEGACY_API targets Rounds a raw legacy CoreGraphics refresh-rate mode value to the nearest typical rate, mirroring what CGDisplayModeGetRefreshRate() provides on newer systems. Ported from https://github.com/macos-powerpc/powerpc-ports/blob/main/sysutils/fastfetch/files/0012-Misc-fixes-for-legacy-systems.patch --- src/detection/displayserver/displayserver.c | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/detection/displayserver/displayserver.c b/src/detection/displayserver/displayserver.c index b5cc8eb7d..e3acafe5d 100644 --- a/src/detection/displayserver/displayserver.c +++ b/src/detection/displayserver/displayserver.c @@ -1,5 +1,27 @@ #include "displayserver.h" +#ifdef CG_LEGACY_API + +uint32_t ffdsParseRefreshRate(int32_t refreshRate) +{ + if(refreshRate <= 0) + return 0; + + int remainder = refreshRate % 5; + if(remainder >= 3) + refreshRate += (5 - remainder); + else + refreshRate -= remainder; + + // All other typicall refresh rates are dividable by 5 + if(refreshRate == 145) + refreshRate = 144; + + return (uint32_t) refreshRate; +} + +#endif + FFDisplayResult* ffdsAppendDisplay( FFDisplayServerResult* result, uint32_t width, -- 2.43.0