Skip to content

Commit cee880c

Browse files
committed
Display: print preferred resolution & refresh rate in custom format
Fix #1406
1 parent 925c347 commit cee880c

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/modules/display/display.c

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include <math.h>
88

9-
#define FF_DISPLAY_NUM_FORMAT_ARGS 21
9+
#define FF_DISPLAY_NUM_FORMAT_ARGS 24
1010

1111
static int sortByNameAsc(FFDisplayResult* a, FFDisplayResult* b)
1212
{
@@ -164,6 +164,17 @@ void ffPrintDisplay(FFDisplayOptions* options)
164164
else
165165
refreshRate[0] = 0;
166166

167+
char preferredRefreshRate[16];
168+
if(result->preferredRefreshRate > 0)
169+
{
170+
if(options->preciseRefreshRate)
171+
snprintf(preferredRefreshRate, ARRAY_SIZE(preferredRefreshRate), "%g", ((int) (result->preferredRefreshRate * 1000 + 0.5)) / 1000.0);
172+
else
173+
snprintf(preferredRefreshRate, ARRAY_SIZE(preferredRefreshRate), "%i", (uint32_t) (result->preferredRefreshRate + 0.5));
174+
}
175+
else
176+
preferredRefreshRate[0] = 0;
177+
167178
char buf[32];
168179
if (result->serial)
169180
{
@@ -197,6 +208,9 @@ void ffPrintDisplay(FFDisplayOptions* options)
197208
FF_FORMAT_ARG(result->platformApi, "platform-api"),
198209
FF_FORMAT_ARG(hdrCompatible, "hdr-compatible"),
199210
FF_FORMAT_ARG(scaleFactor, "scale-factor"),
211+
FF_FORMAT_ARG(result->preferredWidth, "preferred-width"),
212+
FF_FORMAT_ARG(result->preferredHeight, "preferred-height"),
213+
FF_FORMAT_ARG(preferredRefreshRate, "preferred-refresh-rate"),
200214
}));
201215
}
202216
}
@@ -424,9 +438,9 @@ void ffGenerateDisplayJsonResult(FF_MAYBE_UNUSED FFDisplayOptions* options, yyjs
424438
void ffPrintDisplayHelpFormat(void)
425439
{
426440
FF_PRINT_MODULE_FORMAT_HELP_CHECKED(FF_DISPLAY_MODULE_NAME, "{1}x{2} @ {3}Hz (as {4}x{5}) [{7}]", FF_DISPLAY_NUM_FORMAT_ARGS, ((const char* []) {
427-
"Screen width (in pixels) - width",
428-
"Screen height (in pixels) - height",
429-
"Screen refresh rate (in Hz) - refresh-rate",
441+
"Screen configured width (in pixels) - width",
442+
"Screen configured height (in pixels) - height",
443+
"Screen configured refresh rate (in Hz) - refresh-rate",
430444
"Screen scaled width (in pixels) - scaled-width",
431445
"Screen scaled height (in pixels) - scaled-height",
432446
"Screen name - name",
@@ -445,6 +459,9 @@ void ffPrintDisplayHelpFormat(void)
445459
"The platform API used when detecting the display - platform-api",
446460
"True if the display is HDR compatible - hdr-compatible",
447461
"HiDPI scale factor - scale-factor",
462+
"Screen preferred width (in pixels) - preferred-width",
463+
"Screen preferred height (in pixels) - preferred-height",
464+
"Screen preferred refresh rate (in Hz) - preferred-refresh-rate",
448465
}));
449466
}
450467

0 commit comments

Comments
 (0)