From 66f090afdbc21750dfcfce73578b0f49d5980437 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Thu, 21 Jan 2021 07:49:35 +0100 Subject: add isUHD to screenresolution change mechanism to detect video type using screen height instead of guessing height from width --- coreengine/definitions.h | 2 ++ coreengine/viewelementsdisplaychannel.c | 5 ++++- coreengine/viewelementsdisplayreplay.c | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'coreengine') diff --git a/coreengine/definitions.h b/coreengine/definitions.h index dccd50e..3516417 100644 --- a/coreengine/definitions.h +++ b/coreengine/definitions.h @@ -490,6 +490,7 @@ enum class eDCScreenResolutionIT { screenwidth = 0, screenheight, isHD, + isUHD, isWideScreen, count }; @@ -1483,6 +1484,7 @@ enum class eDRRecInfoIT { screenwidth = 0, screenheight, isHD, + isUHD, isWideScreen, count }; diff --git a/coreengine/viewelementsdisplaychannel.c b/coreengine/viewelementsdisplaychannel.c index 7f2d4fa..4b71970 100644 --- a/coreengine/viewelementsdisplaychannel.c +++ b/coreengine/viewelementsdisplaychannel.c @@ -453,6 +453,7 @@ void cVeDcScreenResolution::SetTokenContainer(void) { tokenContainer->DefineIntToken("{screenwidth}", (int)eDCScreenResolutionIT::screenwidth); tokenContainer->DefineIntToken("{screenheight}", (int)eDCScreenResolutionIT::screenheight); tokenContainer->DefineIntToken("{isHD}", (int)eDCScreenResolutionIT::isHD); + tokenContainer->DefineIntToken("{isUHD}", (int)eDCScreenResolutionIT::isUHD); tokenContainer->DefineIntToken("{isWideScreen}", (int)eDCScreenResolutionIT::isWideScreen); InheritTokenContainer(); } @@ -478,7 +479,8 @@ bool cVeDcScreenResolution::Parse(bool forced) { SetDirty(); bool isHD = false; - string resName = GetScreenResolutionString(screenWidth, screenHeight, &isHD); + bool isUHD = false; + string resName = GetScreenResolutionString(screenWidth, screenHeight, &isHD, &isUHD); bool isWideScreen = false; string aspectName = GetScreenAspectString(aspect, &isWideScreen); @@ -487,6 +489,7 @@ bool cVeDcScreenResolution::Parse(bool forced) { tokenContainer->AddIntToken((int)eDCScreenResolutionIT::screenwidth, screenWidth); tokenContainer->AddIntToken((int)eDCScreenResolutionIT::screenheight, screenHeight); tokenContainer->AddIntToken((int)eDCScreenResolutionIT::isHD, isHD); + tokenContainer->AddIntToken((int)eDCScreenResolutionIT::isUHD, isUHD); tokenContainer->AddIntToken((int)eDCScreenResolutionIT::isWideScreen, isWideScreen); tokenContainer->AddStringToken((int)eDCScreenResolutionST::resolution, resName.c_str()); tokenContainer->AddStringToken((int)eDCScreenResolutionST::aspect, aspectName.c_str()); diff --git a/coreengine/viewelementsdisplayreplay.c b/coreengine/viewelementsdisplayreplay.c index a8b98ae..798bd29 100644 --- a/coreengine/viewelementsdisplayreplay.c +++ b/coreengine/viewelementsdisplayreplay.c @@ -78,6 +78,7 @@ void cVeDrRecInfo::SetTokenContainer(void) { tokenContainer->DefineIntToken("{screenwidth}", (int)eDRRecInfoIT::screenwidth); tokenContainer->DefineIntToken("{screenheight}", (int)eDRRecInfoIT::screenheight); tokenContainer->DefineIntToken("{isHD}", (int)eDRRecInfoIT::isHD); + tokenContainer->DefineIntToken("{isUHD}", (int)eDRRecInfoIT::isUHD); tokenContainer->DefineIntToken("{isWideScreen}", (int)eDRRecInfoIT::isWideScreen); InheritTokenContainer(); } @@ -97,7 +98,8 @@ bool cVeDrRecInfo::Parse(bool force) { double aspect = 0; cDevice::PrimaryDevice()->GetVideoSize(screenWidth, screenHeight, aspect); bool isHD = false; - string resName = GetScreenResolutionString(screenWidth, screenHeight, &isHD); + bool isUHD = false; + string resName = GetScreenResolutionString(screenWidth, screenHeight, &isHD, &isUHD); bool isWideScreen = false; string aspectName = GetScreenAspectString(aspect, &isWideScreen); @@ -105,6 +107,7 @@ bool cVeDrRecInfo::Parse(bool force) { tokenContainer->AddIntToken((int)eDRRecInfoIT::screenwidth, screenWidth); tokenContainer->AddIntToken((int)eDRRecInfoIT::screenheight, screenHeight); tokenContainer->AddIntToken((int)eDRRecInfoIT::isHD, isHD); + tokenContainer->AddIntToken((int)eDRRecInfoIT::isUHD, isUHD); tokenContainer->AddIntToken((int)eDRRecInfoIT::isWideScreen, isWideScreen); tokenContainer->AddStringToken((int)eDRRecInfoST::resolution, resName.c_str()); tokenContainer->AddStringToken((int)eDRRecInfoST::aspect, aspectName.c_str()); -- cgit v1.2.3