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 {