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 {