Skip to content

Commit 23f0e3f

Browse files
authored
Update AVInput.cpp
1 parent db1486c commit 23f0e3f

File tree

1 file changed

+76
-10
lines changed

1 file changed

+76
-10
lines changed

AVInput/AVInput.cpp

Lines changed: 76 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ void AVInput::InitializeIARM()
158158
IARM_BUS_DSMGR_NAME,
159159
IARM_BUS_DSMGR_EVENT_HDMI_IN_ALLM_STATUS,
160160
dsAVGameFeatureStatusEventHandler));
161+
IARM_CHECK(IARM_Bus_RegisterEventHandler(
162+
IARM_BUS_DSMGR_NAME,
163+
IARM_BUS_DSMGR_EVENT_HDMI_IN_VRR_STATUS,
164+
dsAVGameFeatureStatusEventHandler));
161165
IARM_CHECK(IARM_Bus_RegisterEventHandler(
162166
IARM_BUS_DSMGR_NAME,
163167
IARM_BUS_DSMGR_EVENT_COMPOSITE_IN_HOTPLUG,
@@ -200,6 +204,9 @@ void AVInput::DeinitializeIARM()
200204
IARM_CHECK(IARM_Bus_RemoveEventHandler(
201205
IARM_BUS_DSMGR_NAME,
202206
IARM_BUS_DSMGR_EVENT_HDMI_IN_ALLM_STATUS, dsAVGameFeatureStatusEventHandler));
207+
IARM_CHECK(IARM_Bus_RemoveEventHandler(
208+
IARM_BUS_DSMGR_NAME,
209+
IARM_BUS_DSMGR_EVENT_HDMI_IN_VRR_STATUS,dsAVGameFeatureStatusEventHandler));
203210
IARM_CHECK(IARM_Bus_RemoveEventHandler(
204211
IARM_BUS_DSMGR_NAME,
205212
IARM_BUS_DSMGR_EVENT_COMPOSITE_IN_HOTPLUG, dsAVEventHandler));
@@ -1007,6 +1014,28 @@ void AVInput::dsAVGameFeatureStatusEventHandler(const char *owner, IARM_EventId_
10071014

10081015
AVInput::_instance->AVInputALLMChange(hdmi_in_port, allm_mode);
10091016
}
1017+
if (IARM_BUS_DSMGR_EVENT_HDMI_IN_VRR_STATUS == eventId)
1018+
{
1019+
bool vrr_mode = true;
1020+
// Hardcoding the values
1021+
int hdmi_in_port = 0;
1022+
dsVRRType_t vrrType = VRR_HDMI_VRR;
1023+
//
1024+
if(!vrrType)
1025+
{
1026+
vrr_mode = false
1027+
AVInput::_instance->AVInputHDMIVRRChange(hdmi_in_port, vrr_mode);
1028+
AVInput::_instance->AVInputAMDFreeSyncChange(hdmi_in_port, vrr_mode);
1029+
}
1030+
elseif(vrrType == VRR_HDMI_VRR)
1031+
{
1032+
AVInput::_instance->AVInputHDMIVRRChange(hdmi_in_port, vrr_mode);
1033+
}
1034+
elseif(vrrType == VRR_AMD_FREESYNC_PREMIUM)
1035+
{
1036+
AVInput::_instance->AVInputAMDFreeSyncChange(hdmi_in_port, vrr_mode);
1037+
}
1038+
}
10101039
}
10111040

10121041
void AVInput::AVInputALLMChange( int port , bool allm_mode)
@@ -1018,6 +1047,25 @@ void AVInput::AVInputALLMChange( int port , bool allm_mode)
10181047

10191048
sendNotify(AVINPUT_EVENT_ON_GAME_FEATURE_STATUS_CHANGED, params);
10201049
}
1050+
void AVInput::AVInputHDMIVRRChange( int port , bool vrr_mode)
1051+
{
1052+
JsonObject params;
1053+
params["id"] = port;
1054+
params["gameFeature"] = "VRR-HDMI";
1055+
params["mode"] = vrr_mode;
1056+
1057+
sendNotify(AVINPUT_EVENT_ON_GAME_FEATURE_STATUS_CHANGED, params);
1058+
}
1059+
1060+
void AVInput::AVInputAMDFreeSyncChange( int port , bool vrr_mode)
1061+
{
1062+
JsonObject params;
1063+
params["id"] = port;
1064+
params["gameFeature"] = "VRR-FREESYNC-PREMIUM";
1065+
params["mode"] = vrr_mode;
1066+
1067+
sendNotify(AVINPUT_EVENT_ON_GAME_FEATURE_STATUS_CHANGED, params);
1068+
}
10211069

10221070
uint32_t AVInput::getSupportedGameFeatures(const JsonObject& parameters, JsonObject& response)
10231071
{
@@ -1073,15 +1121,29 @@ uint32_t AVInput::getGameFeatureStatusWrapper(const JsonObject& parameters, Json
10731121
LOGWARN("AVInput::getGameFeatureStatusWrapper ALLM MODE:%d", allm);
10741122
response["mode"] = allm;
10751123
}
1076-
else if(strcmp (sGameFeature.c_str(), "HDMI VRR") == 0)
1124+
else if(strcmp (sGameFeature.c_str(), "VRR-HDMI") == 0)
10771125
{
1078-
bool hdmi_vrr = getVRRStatus(portId);
1126+
bool hdmi_vrr = false;
1127+
dsVRRType_t vrrType = VRR_HDMI_VRR;
1128+
dsVRRType_t n_vrrType;
1129+
getVRRStatus(portId, &n_vrrType);
1130+
if(vrrType == n_vrrType)
1131+
hdmi_vrr = true;
1132+
else
1133+
hdmi_vrr = false;
10791134
LOGWARN("AVInput::getGameFeatureStatusWrapper HDMI VRR MODE:%d", hdmi_vrr);
10801135
response["mode"] = hdmi_vrr;
10811136
}
1082-
else if(strcmp (sGameFeature.c_str(), "AMD FreeSync Premium") == 0)
1137+
else if(strcmp (sGameFeature.c_str(), "VRR-FREESYNC-PREMIUM") == 0)
10831138
{
1084-
bool amd_freesync_premium = getVRRStatus(portId);
1139+
bool amd_freesync_premium = false;
1140+
dsVRRType_t vrrType = VRR_AMD_FREESYNC_PREMIUM;
1141+
dsVRRType_t n_vrrType;
1142+
getVRRStatus(portId, &n_vrrType);
1143+
if(vrrType == n_vrrType)
1144+
amd_freesync_premium = true;
1145+
else
1146+
amd_freesync_premium = false;
10851147
LOGWARN("AVInput::getGameFeatureStatusWrapper AMD FreeSync Premium MODE:%d", amd_freesync_premium);
10861148
response["mode"] = amd_freesync_premium;
10871149
}
@@ -1109,14 +1171,17 @@ bool AVInput::getALLMStatus(int iPort)
11091171
return allm;
11101172
}
11111173

1112-
bool AVInput::getVRRStatus(int iPort)
1174+
void AVInput::getVRRStatus(int iPort, VRRType_t *vrrType)
11131175
{
1114-
bool vrr = true;
1115-
/*
1116-
to be implemented
1176+
/* to be implemented
1177+
1178+
//device::HdmiInput::getInstance().getVRRStatus (iPort, vrrType);
1179+
11171180
*/
1118-
return vrr;
1181+
//hardcoding the vrrType to VRR_HDMI_VRR
1182+
*vrrType = VRR_HDMI_VRR;
11191183
}
1184+
11201185
uint32_t AVInput::getRawSPDWrapper(const JsonObject& parameters, JsonObject& response)
11211186
{
11221187
LOGINFOMETHOD();
@@ -1394,6 +1459,7 @@ bool getVRRSupport(int portId,bool *vrrSupportValue)
13941459
bool ret = true;
13951460
/*
13961461
to be implemented
1462+
device::HdmiInput::getInstance().getVRRSupport (portId, vrrSupportValue);
13971463
*/
13981464
return ret;
13991465
}
@@ -1430,7 +1496,7 @@ bool setVRRSupport(int portId, bool vrrSupport)
14301496
{
14311497
bool ret = true;
14321498
/*
1433-
to be implemented
1499+
device::HdmiInput::getInstance().getVRRSupport (portId, vrrSupportValue);
14341500
*/
14351501
return ret;
14361502
}

0 commit comments

Comments
 (0)