westeros: add auto frame mode function for westeros [1/1]
PD#SWPL-199688
Problem:
impletement get/setDisplayAutoFrmMode in westeros
Solution:
impletement get/setDisplayAutoFrmMode in westeros
Verify:
s7d
Change-Id: I0eb64ed3c9411d1f82882b7305aef0d350cb4291
Signed-off-by: limin.tian <limin.tian@amlogic.com>
diff --git a/display_framework/src/extension/display_settings/westeros/westeros_settings.c b/display_framework/src/extension/display_settings/westeros/westeros_settings.c
index bc041c8..59be781 100644
--- a/display_framework/src/extension/display_settings/westeros/westeros_settings.c
+++ b/display_framework/src/extension/display_settings/westeros/westeros_settings.c
@@ -742,3 +742,45 @@
return rc;
}
+int getDisplayAutoFrmMode(int* value) {
+ char resp[OUTPUT_SIZE] = {'\0'};
+ char cmdBuf[CMDBUF_SIZE] = {'\0'};
+ char *result = NULL;
+ int rc = -1;
+ if (value == NULL) {
+ ERROR("%s %d Error: pointers are NULL.\n",__FUNCTION__,__LINE__);
+ return rc;
+ }
+ snprintf(cmdBuf, sizeof(cmdBuf)-1, "get auto-frm-mode");
+ rc = wstDisplaySendMessage(cmdBuf,resp);
+ if (rc >= 0) {
+ DEBUG("%s %d get auto-frm-mode: %s",__FUNCTION__,__LINE__,resp );
+ result = strstr(resp, "auto-frm-mode 1");
+ if (result != NULL) {
+ *value = 1;
+ } else {
+ *value = 0;
+ }
+ DEBUG("%s %d get get auto-frm-mode %d",__FUNCTION__,__LINE__, *value);
+ } else {
+ ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
+ }
+ return rc;
+}
+
+int setDisplayAutoFrmMode(int value) {
+ int ret = -1;
+ int rc = -1;
+ char resp[CMDBUF_SIZE] = {'\0'};
+ char cmdBuf[CMDBUF_SIZE] = {'\0'};
+ DEBUG("%s %d westeros set auto-frm-mode %d",__FUNCTION__,__LINE__, value);
+ snprintf(cmdBuf, sizeof(cmdBuf)-1, "set auto-frm-mode %d",value);
+ rc = wstDisplaySendMessage(cmdBuf,resp);
+ if (rc >= 0) {
+ ret = 0;
+ } else {
+ ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
+ }
+ return ret;
+}
+
diff --git a/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c b/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
index d865383..bba98c5 100644
--- a/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
+++ b/display_framework/src/extension/display_settings/westeros/westeros_settings_Test.c
@@ -48,7 +48,7 @@
printf("set:0->hdmi mode 1->cvbs mode 2->hdr policy 3->av mute 4->HDMI HDCP enable 5-><colorDepth, colorSpace>"
"6->HDCP Content Type 7->DvEnable 8->active 9->vrr Enable 10->auto mode 11->dummy mode 12->aspect ratio"
" 13->scaling 14->the status of display 15->dv mode 16->cvbs video mute 17->frac rate policy 18->fracmode"
- " 19->allm 20->hdr_priority\n");
+ " 19->allm 20->hdr_priority 21->auto-frm-mode\n");
len = scanf("%d",&set);
if (set == 0 && len == 1) {
printf("please input modeInfo:interlace, w, h, vrefresh\n");
@@ -284,6 +284,15 @@
} else {
printf("setDisplayHdrPriority Fail\n");
}
+ } else if (set == 21 && len == 1) {
+ printf("set auto-frm-mode: \n");
+ int value = -1;
+ scanf("%d", &value);
+ if (setDisplayAutoFrmMode(value) == 0) {
+ printf("\n setDisplayAutoFrmMode Success\n");
+ } else {
+ printf("setDisplayAutoFrmMode Fail\n");
+ }
}
}
else if(select_s == 1 && select_len == 1) {
@@ -294,7 +303,7 @@
" 24->hdr supportedlist 25->DvCap 26->display enabled 27->dpms status 28->mode support attrlist 29->framrate"
" 30->primar plane fb size 31->physical size 32->Timing information 33->is bestmode 34->dv mode "
" 35->rx supported hdcp version 36->cvbs video mute 37->hdcp topo info 38->Rx supported hdr list"
- " 39->allm 40->vrr_capable 41->hdr_priority\n");
+ " 39->allm 40->vrr_capable 41->hdr_priority 42->auto-frm-mode\n");
len = scanf("%d",&get);
if (get == 0 && len == 1) {
ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -622,6 +631,13 @@
} else {
printf("get hdr_priority value %d\n",enabled);
}
+ } else if (get == 42 && len == 1) {
+ int value = 0;
+ if (getDisplayAutoFrmMode(&value) < 0) {
+ printf("\n send message fail, cause get get auto-frm-mode fail\n");
+ } else {
+ printf("\n get auto-frm-mode %d\n",value);
+ }
}
}
else {