meson-display: complete meson_display api in weston [1/1]
PD#SWPL-177121
Problem:
complete meson_display api in weston
Solution:
complete meson_display api in weston
Verify:
AH212
Change-Id: If0d8d9265a20225e62bf021509683041d9242546
Signed-off-by: chen.wang1 <chen.wang1@amlogic.com>
diff --git a/display_framework/src/extension/display_settings/weston/weston_settings.c b/display_framework/src/extension/display_settings/weston/weston_settings.c
index 4f92849..2c3586a 100644
--- a/display_framework/src/extension/display_settings/weston/weston_settings.c
+++ b/display_framework/src/extension/display_settings/weston/weston_settings.c
@@ -544,7 +544,6 @@
} else {
ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
}
-
return ret;
}
@@ -632,7 +631,22 @@
}
int getDisplayIsBestMode(int* value) {
- return 0;
+ char resp[CMDBUF_SIZE] = {'\0'};
+ char cmdBuf[CMDBUF_SIZE] = {'\0'};
+ int rc = -1;
+ if (value == NULL) {
+ ERROR("%s %d Error: pointers are NULL.\n",__FUNCTION__,__LINE__);
+ return rc;
+ }
+ snprintf(cmdBuf, sizeof(cmdBuf)-1, "-r \"get bestmode\"");
+ rc = wstDisplaySendMessage(cmdBuf,resp);
+ if (rc >= 0) {
+ *value = getValueFromOutputString(resp, "bestmode");
+ DEBUG("%s %d get is bestmode status %d",__FUNCTION__,__LINE__,*value);
+ } else {
+ ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
+ }
+ return rc;
}
int setDisplayEnabled(int enabled) {
@@ -652,7 +666,22 @@
}
int getDisplayEnabled(int* enabled) {
- return 0;
+ char resp[CMDBUF_SIZE] = {'\0'};
+ char cmdBuf[CMDBUF_SIZE] = {'\0'};
+ int rc = -1;
+ if (enabled == NULL) {
+ ERROR("%s %d Error: pointers are NULL.\n",__FUNCTION__,__LINE__);
+ return rc;
+ }
+ snprintf(cmdBuf, sizeof(cmdBuf)-1, "-r \"get display enable\"");
+ rc = wstDisplaySendMessage(cmdBuf,resp);
+ if (rc >= 0) {
+ *enabled = getValueFromOutputString(resp, "enable");
+ DEBUG("%s %d get the status of display %d",__FUNCTION__,__LINE__,*enabled);
+ } else {
+ ERROR("%s %d send message fail",__FUNCTION__,__LINE__);
+ }
+ return rc;
}
int getDisplayScaling(int* value) {
@@ -727,4 +756,3 @@
}
return ret;
}
-
diff --git a/display_framework/src/extension/display_settings/weston/weston_settings_Test.c b/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
index bc9d7f7..a345521 100644
--- a/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
+++ b/display_framework/src/extension/display_settings/weston/weston_settings_Test.c
@@ -45,7 +45,7 @@
if (select_s == 0 && select_len == 1) {
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->mode attr"
- "14->dv mode 15->cvbs video mute 16->frac rate policy 17->scaling 18->auto-frm-mode 19->frac mode\n");
+ "14->dv mode 15->cvbs video mute 16->frac rate policy 17->scaling 18->auto-frm-mode 19->frac mode 20->the status of display\n");
len = scanf("%d",&set);
if (set == 0 && len == 1) {
printf("please input modeInfo: interlace, w, h, vrefresh\n");
@@ -236,7 +236,7 @@
printf("setDisplayFracRatePolicy Fail\n");
}
} else if (set == 17 && len == 1) {
- printf("please input value(value must be greater than 60 and less than or equal to 100 (percent)): \n");
+ printf("please input value(value must be greater than 40 and less than or equal to 100 (percent)): \n");
int value = -1;
scanf("%d", &value);
if (setDisplayScaling(value) == 0) {
@@ -266,6 +266,15 @@
if (modeInfo) {
free(modeInfo);
}
+ } else if (set == 20 && len == 1) {
+ printf("display enable: \n");
+ int enable = -1;
+ scanf("%d", &enable);
+ if (setDisplayEnabled(enable) == 0) {
+ printf("\n setDisplayEnabled Success\n");
+ }else{
+ printf("setDisplayEnabled Fail\n");
+ }
}
}
else if(select_s == 1 && select_len == 1) {
@@ -275,7 +284,7 @@
" 19->current aspect ratio 20->event test 21->frac rate policy 22->Supported dvmode 23->hdr supportedlist"
" 24->DvCap 25->dpms status 26->mode support attrlist 27->framrate 28->primar plane fb size "
" 29>physical size 30->Timing information 31->dv mode 32->rx supported hdcp version 33->cvbs video mute "
- " 34->frac rate policy 35->hdcp topo info 36->scaling 37->auto-frm-mode\n");
+ " 34->frac rate policy 35->hdcp topo info 36->scaling 37->auto-frm-mode 38->display enabled 39->is bestmode\n");
len = scanf("%d",&get);
if (get == 0 && len == 1) {
ENUM_DISPLAY_HDR_POLICY value = getDisplayHDRPolicy( DISPLAY_CONNECTOR_HDMIA);
@@ -557,6 +566,26 @@
} else {
printf("\n get auto-frm-mode %d\n",value);
}
+ } else if (get == 38 && len == 1) {
+ int enabled = 0;
+ if (getDisplayEnabled(&enabled)< 0) {
+ printf("send message fail, cause get the status of display fail\n");
+ } else {
+ printf("get the status of display %d\n",enabled);
+ }
+ } else if (get == 39 && len == 1) {
+ /*The return value of 1 indicates is.bestmode */
+ /*The return value of 0 indicates not bestmode */
+ int value = -1;
+ if (getDisplayIsBestMode(&value) < 0) {
+ printf("\n send message fail, cause get fail\n");
+ } else {
+ if (value == 1) {
+ printf("\n get best mode status value %d (is.bestmode is true)\n",value);
+ } else if (value == 0) {
+ printf("\n get best mode status value %d (is.bestmode: false)\n",value);
+ }
+ }
}
}
else {