summaryrefslogtreecommitdiff
path: root/extensions/helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/helpers.c')
-rw-r--r--extensions/helpers.c42
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;