Skip to content

Commit 36cf8d8

Browse files
authored
Merge pull request #56 from rdkcentral/feature/RDKEMW-4116_VRR_Feature
RDKEMW-4116 : VRR Feature Middleware changes
2 parents efc86c4 + 9aa7e3e commit 36cf8d8

File tree

6 files changed

+405
-4
lines changed

6 files changed

+405
-4
lines changed

ds/hdmiIn.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,34 @@ void HdmiInput::getEdidVersion (int iHdmiPort, int *iEdidVersion) {
572572
printf ("%s:%d - EDID Version = %d\n", __PRETTY_FUNCTION__, __LINE__, *iEdidVersion);
573573
}
574574

575+
void HdmiInput::setVRRSupport(int iHdmiPort, bool vrrSupport)
576+
{
577+
dsError_t ret = dsHdmiInSetVRRSupport (static_cast<dsHdmiInPort_t>(iHdmiPort), vrrSupport);
578+
if (ret != dsERR_NONE)
579+
{
580+
throw Exception(ret);
581+
}
582+
printf ("%s:%d - Set VRR Support = %d\n", __PRETTY_FUNCTION__, __LINE__, vrrSupport);
583+
}
584+
585+
void HdmiInput::getVRRSupport (int iHdmiPort, bool *vrrSupport) {
586+
dsError_t ret = dsHdmiInGetVRRSupport (static_cast<dsHdmiInPort_t>(iHdmiPort), vrrSupport);
587+
if (ret != dsERR_NONE)
588+
{
589+
throw Exception(ret);
590+
}
591+
printf ("%s:%d - EDID VRR Support = %d\n", __PRETTY_FUNCTION__, __LINE__, *vrrSupport);
592+
}
593+
594+
void HdmiInput::getVRRStatus (int iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus) {
595+
dsError_t ret = dsHdmiInGetVRRStatus (static_cast<dsHdmiInPort_t>(iHdmiPort), vrrStatus);
596+
if (ret != dsERR_NONE)
597+
{
598+
throw Exception(ret);
599+
}
600+
printf ("%s:%d - VRR Type = %d , VRR FrameRate = %f\n", __FUNCTION__, __LINE__, vrrStatus->vrrType,vrrStatus->vrrAmdfreesyncFramerate_Hz);
601+
}
602+
575603
void HdmiInput::getHdmiALLMStatus (int iHdmiPort, bool *allmStatus) {
576604
printf ("HdmiInput::getHdmiALLMStatus \r\n");
577605
dsError_t ret = dsGetAllmStatus (static_cast<dsHdmiInPort_t>(iHdmiPort), allmStatus);

ds/include/hdmiIn.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ class HdmiInput
9797
void getAVLatency(int *audio_latency,int *video_latency);
9898
void setEdid2AllmSupport(int iHdmiPort,bool allm_suppport);
9999
void getEdid2AllmSupport(int iHdmiPort, bool *allm_support);
100+
void setVRRSupport (int iHdmiPort, bool vrr_suppport);
101+
void getVRRSupport (int iHdmiPort, bool *vrr_suppport);
102+
void getVRRStatus (int iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus);
100103
void getHdmiVersion (int iHdmiPort, dsHdmiMaxCapabilityVersion_t *capversion);
101104
private:
102105
HdmiInput (); /* default constructor */

rpc/cli/dsHdmiIn.c

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,69 @@ dsError_t dsGetEdid2AllmSupport (dsHdmiInPort_t iHdmiPort, bool *allm_support)
464464
return dsERR_GENERAL;
465465
}
466466

467+
dsError_t dsHdmiInSetVRRSupport (dsHdmiInPort_t iHdmiPort, bool vrr_support)
468+
{
469+
_DEBUG_ENTER();
470+
471+
dsVRRSupportParam_t param;
472+
IARM_Result_t rpcRet = IARM_RESULT_SUCCESS;
473+
param.iHdmiPort = iHdmiPort;
474+
param.vrrSupport = vrr_support;
475+
rpcRet = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
476+
(char *)IARM_BUS_DSMGR_API_dsSetVRRSupport,
477+
(void *)&param,
478+
sizeof(param));
479+
480+
if (IARM_RESULT_SUCCESS == rpcRet)
481+
{
482+
return param.result;
483+
}
484+
printf("%s:%d - dsERR_GENERAL\n", __PRETTY_FUNCTION__,__LINE__);
485+
return dsERR_GENERAL;
486+
}
487+
488+
dsError_t dsHdmiInGetVRRSupport (dsHdmiInPort_t iHdmiPort, bool *vrr_support)
489+
{
490+
_DEBUG_ENTER();
491+
492+
dsVRRSupportParam_t param;
493+
IARM_Result_t rpcRet = IARM_RESULT_SUCCESS;
494+
param.iHdmiPort = iHdmiPort;
495+
rpcRet = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
496+
(char *)IARM_BUS_DSMGR_API_dsGetVRRSupport,
497+
(void *)&param,
498+
sizeof(param));
499+
500+
if (IARM_RESULT_SUCCESS == rpcRet)
501+
{
502+
*vrr_support = param.vrrSupport;
503+
return param.result;
504+
}
505+
printf("%s:%d - dsERR_GENERAL\n", __PRETTY_FUNCTION__,__LINE__);
506+
return dsERR_GENERAL;
507+
}
508+
509+
dsError_t dsHdmiInGetVRRStatus (dsHdmiInPort_t iHdmiPort, dsHdmiInVrrStatus_t *vrrStatus)
510+
{
511+
_DEBUG_ENTER();
512+
dsVRRStatusParam_t param;
513+
IARM_Result_t rpcRet = IARM_RESULT_SUCCESS;
514+
param.iHdmiPort = iHdmiPort;
515+
rpcRet = IARM_Bus_Call (IARM_BUS_DSMGR_NAME,
516+
(char *)IARM_BUS_DSMGR_API_dsGetVRRStatus,
517+
(void *)&param,
518+
sizeof(param));
519+
520+
if (IARM_RESULT_SUCCESS == rpcRet)
521+
{
522+
vrrStatus->vrrType = param.vrrStatus.vrrType;
523+
vrrStatus->vrrAmdfreesyncFramerate_Hz = param.vrrStatus.vrrAmdfreesyncFramerate_Hz;
524+
return param.result;
525+
}
526+
printf("%s:%d - dsERR_GENERAL\n", __FUNCTION__,__LINE__);
527+
return dsERR_GENERAL;
528+
}
529+
467530
dsError_t dsGetHdmiVersion (dsHdmiInPort_t iHdmiPort, dsHdmiMaxCapabilityVersion_t *capversion)
468531
{
469532
_DEBUG_ENTER();

rpc/include/dsMgr.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ typedef enum _DSMgr_EventId_t {
5757
IARM_BUS_DSMGR_EVENT_HDMI_IN_STATUS, /*!< HDMI IN status change event */
5858
IARM_BUS_DSMGR_EVENT_HDMI_IN_VIDEO_MODE_UPDATE, /*!< HDMI IN video mode update event */
5959
IARM_BUS_DSMGR_EVENT_HDMI_IN_ALLM_STATUS, /*!< HDMI IN ALLM mode update event */
60+
IARM_BUS_DSMGR_EVENT_HDMI_IN_VRR_STATUS, /*!< HDMI IN VRR mode update event */
6061
IARM_BUS_DSMGR_EVENT_COMPOSITE_IN_HOTPLUG, /*!< COMPOSITE IN HPD change event */
6162
IARM_BUS_DSMGR_EVENT_COMPOSITE_IN_SIGNAL_STATUS, /*!< COMPOSITE IN signal status change event */
6263
IARM_BUS_DSMGR_EVENT_COMPOSITE_IN_STATUS, /*!< COMPOSITE IN status change event */
@@ -230,6 +231,12 @@ typedef struct _DSMgr_EventData_t {
230231
bool allm_mode;
231232
}hdmi_in_allm_mode; /*HDMI in ALLM Mode change*/
232233

234+
struct _HDMI_IN_VRR_MODE_DATA{
235+
/* Declare HDMI In VRR Mode*/
236+
dsHdmiInPort_t port;
237+
dsVRRType_t vrr_type;
238+
}hdmi_in_vrr_mode; /*HDMI in VRR Mode change*/
239+
233240
struct _HDMI_IN_CONTENT_TYPE_DATA{
234241
/* Declare HDMI In ALLM Mode*/
235242
dsHdmiInPort_t port;

rpc/include/dsRpc.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@ extern "C" {
236236
#define IARM_BUS_DSMGR_API_dsSetEdid2AllmSupport "dsSetEdid2AllmSupport"
237237
#define IARM_BUS_DSMGR_API_dsGetEdid2AllmSupport "dsGetEdid2AllmSupport"
238238
#define IARM_BUS_DSMGR_API_dsGetAllmStatus "dsGetAllmStatus"
239+
#define IARM_BUS_DSMGR_API_dsSetVRRSupport "dsSetVRRSupport"
240+
#define IARM_BUS_DSMGR_API_dsGetVRRSupport "dsGetVRRSupport"
241+
#define IARM_BUS_DSMGR_API_dsGetVRRStatus "dsGetVRRStatus"
239242
#define IARM_BUS_DSMGR_API_dsGetSupportedGameFeaturesList "dsGetSupportedGameFeaturesList"
240243
#define IARM_BUS_DSMGR_API_dsGetAVLatency "dsGetAVLatency"
241244
#define IARM_BUS_DSMGR_API_dsGetHdmiVersion "dsGetHdmiVersion"
@@ -1009,6 +1012,20 @@ typedef struct _dsEdidAllmSupportParam_t
10091012
bool allmSupport;
10101013
}dsEdidAllmSupportParam_t;
10111014

1015+
typedef struct _dsVRRSupportParam_t
1016+
{
1017+
dsError_t result;
1018+
dsHdmiInPort_t iHdmiPort;
1019+
bool vrrSupport;
1020+
}dsVRRSupportParam_t;
1021+
1022+
typedef struct _dsVRRStatusParam_t
1023+
{
1024+
dsError_t result;
1025+
dsHdmiInPort_t iHdmiPort;
1026+
dsHdmiInVrrStatus_t vrrStatus;
1027+
}dsVRRStatusParam_t;
1028+
10121029
typedef struct _dsGetHDMIARCPortIdParam_t {
10131030
dsError_t result;
10141031
int portId;

0 commit comments

Comments
 (0)