50
50
#define AVINPUT_METHOD_GET_EDID_ALLM_SUPPORT " getEdid2AllmSupport"
51
51
#define AVINPUT_METHOD_SET_VRR_SUPPORT " setVRRSupport"
52
52
#define AVINPUT_METHOD_GET_VRR_SUPPORT " getVRRSupport"
53
+ #define AVINPUT_METHOD_GET_VRR_FRAME_RATE " getVRRFrameRate"
53
54
#define AVINPUT_METHOD_GET_HDMI_COMPATIBILITY_VERSION " getHdmiVersion"
54
55
#define AVINPUT_METHOD_SET_MIXER_LEVELS " setMixerLevels"
55
56
#define AVINPUT_METHOD_START_INPUT " startInput"
@@ -242,6 +243,7 @@ void AVInput::RegisterAll()
242
243
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_GET_EDID_ALLM_SUPPORT), &AVInput::getEdid2AllmSupportWrapper, this );
243
244
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_SET_VRR_SUPPORT), &AVInput::setVRRSupportWrapper, this );
244
245
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_GET_VRR_SUPPORT), &AVInput::getVRRSupportWrapper, this );
246
+ Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_GET_VRR_FRAME_RATE), &AVInput::getVRRFrameRateWrapper, this );
245
247
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_GET_HDMI_COMPATIBILITY_VERSION), &AVInput::getHdmiVersionWrapper, this );
246
248
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_START_INPUT), &AVInput::startInput, this );
247
249
Register<JsonObject, JsonObject>(_T (AVINPUT_METHOD_STOP_INPUT), &AVInput::stopInput, this );
@@ -265,6 +267,7 @@ void AVInput::UnregisterAll()
265
267
Unregister (_T (AVINPUT_METHOD_READ_SPD));
266
268
Unregister (_T (AVINPUT_METHOD_SET_VRR_SUPPORT));
267
269
Unregister (_T (AVINPUT_METHOD_GET_VRR_SUPPORT));
270
+ Unregister (_T (AVINPUT_METHOD_GET_VRR_FRAME_RATE));
268
271
Unregister (_T (AVINPUT_METHOD_SET_EDID_VERSION));
269
272
Unregister (_T (AVINPUT_METHOD_GET_EDID_VERSION));
270
273
Unregister (_T (AVINPUT_METHOD_START_INPUT));
@@ -1137,39 +1140,39 @@ uint32_t AVInput::getGameFeatureStatusWrapper(const JsonObject& parameters, Json
1137
1140
else if (strcmp (sGameFeature .c_str (), " VRR-HDMI" ) == 0 )
1138
1141
{
1139
1142
bool hdmi_vrr = false ;
1140
- dsVRRType_t vrrType ;
1141
- getVRRStatus (portId, &vrrType );
1142
- if (vrrType == dsVRR_HDMI_VRR)
1143
+ dsHdmiInVrrStatus_t vrrStatus ;
1144
+ getVRRStatus (portId, &vrrStatus );
1145
+ if (vrrStatus. vrrType == dsVRR_HDMI_VRR)
1143
1146
hdmi_vrr = true ;
1144
1147
LOGWARN (" AVInput::getGameFeatureStatusWrapper HDMI VRR MODE:%d" , hdmi_vrr);
1145
1148
response[" mode" ] = hdmi_vrr;
1146
1149
}
1147
1150
else if (strcmp (sGameFeature .c_str (), " VRR-FREESYNC" ) == 0 )
1148
1151
{
1149
1152
bool freesync = false ;
1150
- dsVRRType_t vrrType ;
1151
- getVRRStatus (portId, &vrrType );
1152
- if (vrrType == dsVRR_AMD_FREESYNC)
1153
+ dsHdmiInVrrStatus_t vrrStatus ;
1154
+ getVRRStatus (portId, &vrrStatus );
1155
+ if (vrrStatus. vrrType == dsVRR_AMD_FREESYNC)
1153
1156
freesync = true ;
1154
1157
LOGWARN (" AVInput::getGameFeatureStatusWrapper FREESYNC MODE:%d" , freesync);
1155
1158
response[" mode" ] = freesync;
1156
1159
}
1157
1160
else if (strcmp (sGameFeature .c_str (), " VRR-FREESYNC-PREMIUM" ) == 0 )
1158
1161
{
1159
1162
bool freesync_premium = false ;
1160
- dsVRRType_t vrrType ;
1161
- getVRRStatus (portId, &vrrType );
1162
- if (vrrType == dsVRR_AMD_FREESYNC_PREMIUM)
1163
+ dsHdmiInVrrStatus_t vrrStatus ;
1164
+ getVRRStatus (portId, &vrrStatus );
1165
+ if (vrrStatus. vrrType == dsVRR_AMD_FREESYNC_PREMIUM)
1163
1166
freesync_premium = true ;
1164
1167
LOGWARN (" AVInput::getGameFeatureStatusWrapper FREESYNC PREMIUM MODE:%d" , freesync_premium);
1165
1168
response[" mode" ] = freesync_premium;
1166
1169
}
1167
1170
else if (strcmp (sGameFeature .c_str (), " VRR-FREESYNC-PREMIUM-PRO" ) == 0 )
1168
1171
{
1169
1172
bool freesync_premium_pro = false ;
1170
- dsVRRType_t vrrType ;
1171
- getVRRStatus (portId, &vrrType );
1172
- if (vrrType == dsVRR_AMD_FREESYNC_PREMIUM_PRO)
1173
+ dsHdmiInVrrStatus_t vrrStatus ;
1174
+ getVRRStatus (portId, &vrrStatus );
1175
+ if (vrrStatus. vrrType == dsVRR_AMD_FREESYNC_PREMIUM_PRO)
1173
1176
freesync_premium_pro = true ;
1174
1177
LOGWARN (" AVInput::getGameFeatureStatusWrapper FREESYNC PREMIUM PRO MODE:%d" , freesync_premium_pro);
1175
1178
response[" mode" ] = freesync_premium_pro;
@@ -1198,19 +1201,20 @@ bool AVInput::getALLMStatus(int iPort)
1198
1201
return allm;
1199
1202
}
1200
1203
1201
- void AVInput::getVRRStatus (int iPort, dsVRRType_t *vrrType )
1204
+ void AVInput::getVRRStatus (int iPort, dsHdmiInVrrStatus_t *vrrStatus )
1202
1205
{
1203
-
1206
+ bool ret = true ;
1204
1207
try
1205
1208
{
1206
- device::HdmiInput::getInstance ().getVRRStatus (iPort, vrrType );
1207
- LOGWARN (" AVInput::getVRRStatus VRR TYPE: %d" , * vrrType);
1209
+ device::HdmiInput::getInstance ().getVRRStatus (iPort, vrrStatus );
1210
+ LOGWARN (" AVInput::getVRRStatus VRR TYPE: %d, VRR FRAMERATE: %f " , vrrStatus-> vrrType ,vrrStatus-> vrrAmdfreesyncFramerate_Hz );
1208
1211
}
1209
1212
catch (const device::Exception& err)
1210
1213
{
1211
1214
LOG_DEVICE_EXCEPTION1 (std::to_string (iPort));
1215
+ ret = false ;
1212
1216
}
1213
-
1217
+ return ret;
1214
1218
}
1215
1219
1216
1220
uint32_t AVInput::getRawSPDWrapper (const JsonObject& parameters, JsonObject& response)
@@ -1504,11 +1508,11 @@ bool AVInput::getVRRSupport(int portId,bool *vrrSupportValue)
1504
1508
uint32_t AVInput::getVRRSupportWrapper (const JsonObject& parameters, JsonObject& response)
1505
1509
{
1506
1510
LOGINFOMETHOD ();
1511
+ returnIfParamNotFound (parameters, " portId" );
1507
1512
string sPortId = parameters[" portId" ].String ();
1508
1513
1509
1514
int portId = 0 ;
1510
1515
bool vrrSupport = true ;
1511
- returnIfParamNotFound (parameters, " portId" );
1512
1516
1513
1517
try {
1514
1518
portId = stoi (sPortId );
@@ -1575,6 +1579,34 @@ uint32_t AVInput::setVRRSupportWrapper(const JsonObject& parameters, JsonObject&
1575
1579
}
1576
1580
}
1577
1581
1582
+ uint32_t AVInput::getVRRFrameRateWrapper (const JsonObject& parameters, JsonObject& response)
1583
+ {
1584
+ LOGINFOMETHOD ();
1585
+ returnIfParamNotFound (parameters, " portId" );
1586
+ string sPortId = parameters[" portId" ].String ();
1587
+
1588
+ int portId = 0 ;
1589
+ dsHdmiInVrrStatus_t vrrStatus;
1590
+
1591
+ try {
1592
+ portId = stoi (sPortId );
1593
+ }catch (const std::exception& err) {
1594
+ LOGWARN (" sPortId invalid paramater: %s " , sPortId .c_str ());
1595
+ returnResponse (false );
1596
+ }
1597
+
1598
+ bool result = getVRRStatus (portId, &vrrStatus);
1599
+ if (result == true )
1600
+ {
1601
+ response[" currentVRRVideoFrameRate" ] = vrrStatus.vrrAmdfreesyncFramerate_Hz ;
1602
+ returnResponse (true );
1603
+ }
1604
+ else
1605
+ {
1606
+ returnResponse (false );
1607
+ }
1608
+ }
1609
+
1578
1610
uint32_t AVInput::setEdidVersionWrapper (const JsonObject& parameters, JsonObject& response)
1579
1611
{
1580
1612
LOGINFOMETHOD ();
0 commit comments