Merge "[Feature]][ZXW-56][CALL] add  oem api demo code"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
index 99b1fda..e4f5107 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc.conf
@@ -213,6 +213,7 @@
         uci \
         gdb \
         mobiletek-tester-rdit \
+        lynq-qser-voice-demo \
 	"
 
 zxic_app_open += "${@bb.utils.contains('CONFIG_TEL_API_SUPPORT', 'RIL', 'rild', '', d)}"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/lynq-qser-voice-demo.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/lynq-qser-voice-demo.bb
new file mode 100644
index 0000000..ec11c10
--- /dev/null
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-lynq/lynq-qser-voice-demo/lynq-qser-voice-demo.bb
@@ -0,0 +1,36 @@
+#inherit externalsrc package
+#inherit externalsrc package systemd
+DESCRIPTION = "lynq-qser-voice-demo"
+LICENSE = "CLOSED"
+LICENSE = "CLOSED"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e07e8d88e26263e71d3a9e2aa9a2ff"
+DEPENDS += "liblynq-qser-voice"
+#inherit workonsrc
+WORKONSRC = "${TOPDIR}/../src/lynq/packages/apps/lynq-qser-voice-demo"
+FILESEXTRAPATHS_prepend :="${TOPDIR}/../src/lynq/packages/apps:"
+SRC_URI = " \
+          file://lynq-qser-voice-demo \
+          "
+
+SRC-DIR = "${S}/../lynq-qser-voice-demo"
+TARGET_CC_ARCH += "${LDFLAGS}"
+SYSTEMD_PACKAGES = "${PN}"
+#Parameters passed to do_compile()
+EXTRA_OEMAKE = "'TARGET_PLATFORM = ${TARGET_PLATFORM}'\"
+EXTRA_OEMAKE += "'MOBILETEK_RIL_CFG = ${MOBILETEK_RIL_CFG}'"
+
+EXTRA_OEMAKE += "'MOBILETEK_FOTA_CFG = ${MOBILETEK_FOTA_CFG}'"
+
+#INHIBIT_PACKAGE_STRIP = "1"
+do_compile () {
+	if test "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" || test "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4"; then
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -mhard-float"
+	else
+		oe_runmake all -C ${SRC-DIR} ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST}"
+	fi
+}
+
+do_install() {
+	install -d ${D}${bindir}/
+	install -m 0755 ${SRC-DIR}/lynq-qser-voice-demo ${D}${bindir}/
+}
diff --git a/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/include/lynq-qser-voice-demo.h b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/include/lynq-qser-voice-demo.h
new file mode 100755
index 0000000..79977b9
--- /dev/null
+++ b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/include/lynq-qser-voice-demo.h
@@ -0,0 +1,31 @@
+typedef enum 

+{

+    E_QSER_VOICE_CALL_STATE_INCOMING      = 0x0000, /**< MT incoming; CC setup. */

+    E_QSER_VOICE_CALL_STATE_DIALING       = 0x0001, /**< Dialing state. */

+    E_QSER_VOICE_CALL_STATE_ALERTING      = 0x0002, /**< MT call waiting; MO alterting. */

+    E_QSER_VOICE_CALL_STATE_ACTIVE        = 0x0003, /**< Call is active. */

+    E_QSER_VOICE_CALL_STATE_HOLDING       = 0x0004, /**< Call is on hold. */

+    E_QSER_VOICE_CALL_STATE_END           = 0x0005, /**< Call is disconnected. */

+    E_QSER_VOICE_CALL_STATE_WAITING       = 0x0006, /**< Call is waiting. */

+}qser_voice_call_state_t;

+

+typedef enum

+{

+    E_QSER_VCALL_EXTERNAL_SLOT_1,

+    E_QSER_VCALL_EXTERNAL_SLOT_2,

+    E_QSER_VCALL_EMBEDDED,

+    E_QSER_VCALL_REMOTE,

+    E_QSER_VCALL_ID_MAX

+}E_QSER_VCALL_ID_T;

+

+

+typedef qser_voice_call_state_t E_QSER_VOICE_CALL_STATE_T;

+

+typedef void (*QSER_VoiceCall_StateHandlerFunc_t)

+(

+    int                     caLOCAL_C_INCLUDESll_id,

+    char*                   phone_num,

+    E_QSER_VOICE_CALL_STATE_T state,

+    void                    *contextPtr

+);

+

diff --git a/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/lynq-qser-voice-demo.cpp b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/lynq-qser-voice-demo.cpp
new file mode 100755
index 0000000..3e69508
--- /dev/null
+++ b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/lynq-qser-voice-demo.cpp
Binary files differ
diff --git a/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/makefile b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/makefile
new file mode 100755
index 0000000..f90a026
--- /dev/null
+++ b/cap/zx297520v3/src/lynq/packages/apps/lynq-qser-voice-demo/makefile
@@ -0,0 +1,50 @@
+SHELL = /bin/sh

+RM = rm -f

+

+LOCAL_CFLAGS := -Wall \

+                -std=gnu++14 \

+                -g -Os \

+                -flto \

+

+ifeq ($(strip $(TARGET_PLATFORM)), T106)

+LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 -DHAVE_ENDIAN_H -DHAVE_PTHREADS -DHAVE_SYS_UIO_H -DHAVE_POSIX_FILEMAP -DHAVE_STRLCPY -DHAVE_PRCTL -DHAVE_MEMSET16 -DHAVE_MEMSET32 -DANDROID_SMP=0

+endif

+

+LOCAL_CFLAGS += -Wno-error=format-security

+

+LOCAL_PATH   = .

+

+LOCAL_C_INCLUDES = \

+  -I. \

+  -I$(LOCAL_PATH)/include/ \

+  -I$(ROOT)$(includedir)/liblog \

+  -I$(ROOT)$(includedir)/libcall \

+

+

+LOCAL_LIBS := \

+    -L. \

+    -ldl \

+    -lstdc++ \

+    -lpthread \

+

+

+SOURCES = lynq-qser-voice-demo.cpp

+

+EXECUTABLE = lynq-qser-voice-demo

+

+OBJECTS=$(SOURCES:.cpp=.o)

+

+OBJECTS_TOOL=$(SOURCES_TOOL:.cpp=.o)

+all: $(EXECUTABLE) 

+

+$(EXECUTABLE): $(OBJECTS)

+	$(CXX) $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@

+

+%.o : %.cpp

+	$(CXX) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<

+

+.PHONY: clean

+clean:

+	$(RM) $(OBJECTS) $(EXECUTABLE)

+	$(RM) $(OBJECTS_TOOL) $(EXECUTABLE)

+