diff options
Diffstat (limited to 'extensions/helpers.c')
| -rw-r--r-- | extensions/helpers.c | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/extensions/helpers.c b/extensions/helpers.c index 5c84094..5e06d95 100644 --- a/extensions/helpers.c +++ b/extensions/helpers.c @@ -198,29 +198,43 @@ string GetTimeString(int seconds) { //View Helpers -string GetScreenResolutionString(int width, int height, bool *isHD) { +string GetScreenResolutionString(int width, int height, bool *isHD, bool *isUHD) { + // TODO: try to get more information from information sources about interlace/progressive + // cDevice::PrimaryDevice()->GetVideoSize is NOT providing enough information + *isHD = false; // default + *isUHD = false; // default string name = ""; - switch (width) { - case 1920: - case 1440: - name = "hd1080i"; + switch (height) { + case 4320: // 7680 x 4320 = 8K UHD + name = "uhd4320p"; *isHD = true; + *isUHD = true; break; - case 1280: - if (height == 720) - name = "hd720p"; - else - name = "hd1080i"; + case 2160: // 3840 x 2160 = 4K UHD + name = "uhd2160p"; + *isHD = true; + *isUHD = true; + break; + case 1440: // 2560 x 1440 = QHD + name = "hd1440p"; + *isHD = true; + break; + case 1080: + name = "hd1080i"; // 'i' is default, 'p' can't be detected currently *isHD = true; break; case 720: - name = "sd576i"; + name = "hd720p"; // 'i' is not defined in standards + *isHD = true; + break; + case 576: + name = "sd576i"; // assumed 'i' break; - case 544: - name = "sd480i"; + case 480: + name = "sd480i"; // assumed 'i' break; default: - name = "sd576i"; + name = "unknown"; break; } return name; |
