[Feature][ZXW-129] Add qser settings and access to call volume interface

Only Configure:No
Affected branch:master
Affected module:Call
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update:Yes

Change-Id: Iadd98bcff45a75dcfb6967eec8b7c9f8cf08fbfe
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp
index 5f421c9..81185d9 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/files/lynq-qser-voice-demo.cpp
@@ -22,6 +22,8 @@
     {1,   "qser_voice_call_start"},

     {2,   "qser_voice_call_end"},

     {3,   "qser_voice_call_answer"},

+    {4,   "qser_voice_set_speech_volume"},

+    {5,   "qser_voice_get_speech_volume"},

     {-1,    NULL}

 };

 

@@ -44,6 +46,8 @@
 

 int (*qser_voice_call_end)(voice_client_handle_type ,int );

 int (*qser_voice_call_answer)(voice_client_handle_type ,int  );

+int (*qser_voice_set_speech_volume)(const int volume);

+int (*qser_voice_get_speech_volume)(int *volume);

 

 void *dlHandle_call = NULL;

 

@@ -133,27 +137,40 @@
     }

 

     qser_voice_call_removestatehandle = (int (*)(voice_client_handle_type))dlsym(dlHandle_call,"qser_voice_call_removestatehandle");

-     if(qser_voice_call_removestatehandle == NULL) 

+    if(qser_voice_call_removestatehandle == NULL) 

     {

         printf("qser_voice_call_removestatehandle not defined or exported in %s\n", lynqLibPath_Call);

         return -1;

     }

 

-    ret = qser_voice_call_client_init(&h_voice);

-    if(ret != 0 && ret != 1)

+    qser_voice_set_speech_volume = (int (*)(const int ))dlsym(dlHandle_call,"qser_voice_set_speech_volume");

+    if(qser_voice_set_speech_volume == NULL)    

     {

-        printf("qser_voice_call_client_init FAIL.%d\n");

+            printf("qser_voice_set_speech_volume not defined or exported in %s\n", lynqLibPath_Call);

+            return -1;

+    }

+

+    qser_voice_get_speech_volume = (int (*)(int* ))dlsym(dlHandle_call,"qser_voice_get_speech_volume");

+    if(qser_voice_get_speech_volume == NULL)    

+    {

+            printf("qser_voice_get_speech_volume not defined or exported in %s\n", lynqLibPath_Call);

+            return -1;

+    }

+    

+    ret = qser_voice_call_client_init(&h_voice);

+    if(ret != 0 )

+    {

+        printf("qser_voice_call_client_init FAIL\n");

         return -1;

     }

 

     ret = qser_voice_call_addstatehandler(h_voice, yk_voice_call_cb_func, &voice_call_id);

-    if(ret != 0 && ret != 1)

+    if(ret != 0)

     {

-        printf("qser_voice_call_addstatehandler FAIL.%d\n");

+        printf("qser_voice_call_addstatehandler FAIL\n");

         return -1;

     }

 

-    printf("qser_voice_call_addstatehandler ret = %d\n", ret);

 

     print_help();

     while(1)

@@ -206,6 +223,27 @@
                 printf(" ret = %d\n", ret);

                 break;

             }

+            

+            case 4:

+            {

+                int volume = 0;

+                printf("Please set speech volume:0-5 level\n");

+                scanf("%d",&volume);

+                ret = qser_voice_set_speech_volume(volume);

+                printf("ret is %d\n",ret);

+                break;

+

+            }

+

+            case 5:

+            {

+                int volume = -1;

+                printf("Enter get speech volume\n");

+                ret = qser_voice_get_speech_volume(&volume);

+                printf("ret is %d,get volume is %d\n",ret,volume);

+                break;

+

+            }

             default:

                 print_help();

                 break;

@@ -216,7 +254,7 @@
     ret = qser_voice_call_removestatehandle(h_voice);

     if(ret != 0 && ret != 1)

     {

-        printf("qser_voice_call_removestatehandle FAIL.%d\n");

+        printf("qser_voice_call_removestatehandle FAIL!!!\n");

         return -1;

     }

     printf("qser_voice_call_removestatehandle ret = %d\n", ret);

@@ -225,7 +263,7 @@
     ret = qser_voice_call_client_deinit(h_voice);

     if(ret != 0)

     {

-        printf("qser_voice_call_client_deinit FAIL.%d\n",ret);

+        printf("qser_voice_call_client_deinit FAIL\n");

         return -1;

     }

     printf("qser_voice_call_client_deinit ret = %d, with h_voice=%d\n", ret, h_voice);

diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/include/lynq-qser-voice.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/include/lynq-qser-voice.h
index 13622db..8666362 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/include/lynq-qser-voice.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/include/lynq-qser-voice.h
@@ -88,6 +88,12 @@
 
 int qser_voice_call_switch_waiting_or_holding_and_active(voice_client_handle_type h_voice);
 
+//set voice speech volume
+int qser_voice_set_speech_volume(const int volume);
+
+//Get voice speech volume
+int qser_voice_get_speech_volume(int *volume);
+
 //Set voice call waiting
 int qser_voice_call_setwaiting
 ( 
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
index b7c3d7a..fa210e6 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-voice/lynq-qser-voice.cpp
@@ -16,6 +16,10 @@
 #define RESULT_OK (0)
 #define RESULT_ERROR (-1)
 
+#define MIN_VOLUME 0
+#define MAX_VOLUME 5
+
+
 static pthread_t s_lynq_voice_tid = -1;
 static QSER_VoiceCall_StateHandlerFunc_t   s_voice_cb = NULL;
 static int s_voice_thread_status = 0;
@@ -210,5 +214,21 @@
     return lynq_switch_waiting_or_holding_and_active();
 }
 
+int qser_voice_set_speech_volume(const int volume)
+{
+    if(volume < MIN_VOLUME || volume > MAX_VOLUME)
+    {
+        LYERRLOG("Illeage input volume");
+        return RESULT_ERROR;
+    }
+    return lynq_set_speech_volume(volume);
+}
+
+
+int qser_voice_get_speech_volume(int *volume)
+{
+    return lynq_get_speech_volume(volume);
+}
+
 DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_CALL)