Squashed 'LYNQ_PUBLIC/' content from commit 79d8f932f

git-subtree-dir: LYNQ_PUBLIC
git-subtree-split: 79d8f932fb4ebc4b5aec6c5ace97634912394272
Change-Id: If2527ba937f56fe989487bf71e996f7cfd9fbe61
diff --git a/common_src/packages/apps/lynq-dev-test/src/LICENSE b/common_src/packages/apps/lynq-dev-test/src/LICENSE
new file mode 100644
index 0000000..77f59ed
--- /dev/null
+++ b/common_src/packages/apps/lynq-dev-test/src/LICENSE
@@ -0,0 +1,31 @@
+Copyright Statement:
+
+This software/firmware and related documentation ("MediaTek Software") are
+protected under relevant copyright laws. The information contained herein is
+confidential and proprietary to MediaTek Inc. and/or its licensors. Without
+the prior written permission of MediaTek inc. and/or its licensors, any
+reproduction, modification, use or disclosure of MediaTek Software, and
+information contained herein, in whole or in part, shall be strictly
+prohibited.
+
+MediaTek Inc. (C) 2015. All rights reserved.
+
+BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
+RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES
+TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
+SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
+RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
+ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE
+RELEASED HEREUNDER WILL BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE
+MEDIATEK SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+CHARGE PAID BY RECEIVER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
diff --git a/common_src/packages/apps/lynq-dev-test/src/lynq_dev_test.c b/common_src/packages/apps/lynq-dev-test/src/lynq_dev_test.c
new file mode 100644
index 0000000..9d65d85
--- /dev/null
+++ b/common_src/packages/apps/lynq-dev-test/src/lynq_dev_test.c
@@ -0,0 +1,58 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <log/log.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+//#include "libdev/lynq_dev_control.h"
+//#include "liblynq-media/lynq_medial.h"
+#ifdef __cplusplus
+}
+#endif
+static const char *devicename = "/data/ring.wav";
+#define LOG_TAG "DEV_TEST"
+int main(int argc, char **argv) 
+{
+    char devicename[100] = {0};
+    char swversion[100] = {0};
+    char oemversion[100] = {0};
+    char manufacturer[100] = {0};
+    char hwversion[100] = {0};
+    int get_rtc ,set_rtc ,cancel_rtc,get_adc,get_usb_status;
+    struct tm timer_time;
+    gsdk_device_get_devicename(devicename);
+    printf("gsdk_device_get_devicename:%s \n",devicename);
+    gsdk_device_get_swversion(swversion);
+    printf("gsdk_device_get_swversion:%s \n",swversion);
+    gsdk_device_get_oemversion(oemversion);
+    printf("gsdk_device_get_oemversion:%s \n",oemversion);	
+    gsdk_device_get_manufacturer(manufacturer);
+    printf("gsdk_device_get_manufacturer:%s \n",manufacturer);	
+    gsdk_device_get_hwversion(hwversion);
+    printf("gsdk_device_get_hwversion:%s \n",hwversion);
+
+    //set_rtc = gsdk_device_set_rtc_timer();
+    //printf("gsdk_device_set_rtc_timer:%d \n",set_rtc);
+    //get_adc = gsdk_device_get_adc();
+    //printf("gsdk_device_get_adc:%d \n",get_adc);
+    //sleep(30);
+    
+    //get_rtc = gsdk_device_get_rtc_timer(set_rtc,&timer_time);
+    //printf("gsdk_device_get_rtc_timer:%d,timer_time,year:%d\n",get_rtc,timer_time.tm_year);
+    //printf("timer_time,tm_mon:%d\n",timer_time.tm_mon);
+    //printf("timer_time,tm_mday:%d\n",timer_time.tm_mday);
+    //printf("timer_time,tm_hour:%d\n",timer_time.tm_hour);
+    //printf("timer_time,tm_min:%d\n",timer_time.tm_min);
+    //printf("timer_time,tm_sec:%d\n",timer_time.tm_sec);
+    //sleep(30);
+    //cancel_rtc = gsdk_device_cancel_rtc_timer(set_rtc);
+    //printf("gsdk_device_cancel_rtc_timer:%d \n",cancel_rtc);
+    //sleep(30);
+    get_usb_status = gsdk_device_get_usb_state();
+    printf("gsdk_device_get_usb_state,get_usb_status:%d\n",get_usb_status);
+    //gsdk_device_reboot_system();
+    //printf(" reboot_system");
+    while(1){sleep(10);}
+    return 0;
+}
\ No newline at end of file
diff --git "a/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp" "b/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp"
new file mode 100644
index 0000000..c07e271
--- /dev/null
+++ "b/common_src/packages/apps/lynq-dev-test/src/lynq_testprocess\050gpio\051.tmp"
@@ -0,0 +1,144 @@
+#include <stdio.h>
+#include <string.h>
+#include <pthread.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <gio/gio.h>
+#include <log/log.h>
+#include <glib.h>
+#define GPIO_SERVICE "lynq.gpio" /*well-known bus name */
+#define GPIO_DATA_INTERFACE "lynq.gpio.Data" /*interface name*/
+#define GPIO_DATA_PATH "/lynq/gpio/data" /*object name*/
+GMainLoop *loop = NULL;
+GDBusProxy *proxy = NULL;
+#define LOG_TAG "GPIO_CONTROL"
+int set_gpio (gchar * mode,guint *gpio_numb,guint param)
+{
+	GDBusConnection *c1;
+	GVariant *result;
+	GError *error;
+	guint  set_result = -1;
+	 g_type_init();
+	loop = g_main_loop_new(NULL, FALSE);   /** create main loop, but do not start it.*/
+	c1 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+	g_assert (c1 != NULL);
+	g_assert (!g_dbus_connection_is_closed (c1));
+	result = g_dbus_connection_call_sync (c1,
+                                        GPIO_SERVICE,  /* bus name */
+                                        GPIO_DATA_PATH, /* object path */
+                                        GPIO_DATA_INTERFACE,  /* interface name */
+                                        "setGpio",                 /* method name */
+                                        g_variant_new ("(sii)", mode,gpio_numb,param),  /* parameters */
+                                         G_VARIANT_TYPE ("(i)"),                    /* return type */
+                                        G_DBUS_CALL_FLAGS_NONE,
+                                        -1,
+                                        NULL,
+                                        &error);
+	g_assert_no_error (error);
+	g_assert (result != NULL);
+	g_variant_get(result, "((i))", &(set_result));
+	g_variant_unref (result);
+	g_main_loop_run (loop);
+	g_main_loop_unref (loop);
+    return set_result;
+}
+int get_gpio (guint *gpio_numb)
+{
+   	GDBusConnection *c1;
+	GVariant *result;
+	GError *error;
+	guint  parm=0;
+	 const gchar *set_result;
+	 const gchar *mode ="gpio";
+	if(set_gpio(mode,gpio_numb,parm)== -1)
+	{
+		RLOGD("get_gpio number error");
+		return -1;
+	}
+	c1 = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+	g_assert (c1 != NULL);
+	g_assert (!g_dbus_connection_is_closed (c1));
+	result = g_dbus_connection_call_sync (c1,
+                                        GPIO_SERVICE,  /* bus name */
+                                        GPIO_DATA_PATH, /* object path */
+                                        GPIO_DATA_INTERFACE,  /* interface name */
+                                        "getGpio",                 /* method name */
+                                        NULL,  /* parameters */
+                                         G_VARIANT_TYPE ("(s)"),                     /* return type */
+                                        G_DBUS_CALL_FLAGS_NONE,
+                                        -1,
+                                        NULL,
+                                        &error);
+	g_assert_no_error (error);
+	g_assert (result != NULL);
+	g_variant_get(result, "((s))", &(set_result));
+	RLOGD("get_gpio,%s",set_result);
+	g_variant_unref (result);
+    return 1;
+}
+void proxy_ready(GObject *source, GAsyncResult *result, gpointer user_data) {
+    GError *error;
+
+    error = NULL;
+    proxy = g_dbus_proxy_new_for_bus_finish(result, &error);
+    if (proxy == NULL) {
+        RLOGE("create proxy fail");
+        return ;
+    }
+    RLOGD("proxy is ready");
+    gulong signal_handler_id;
+
+  //  signal_handler_id = g_signal_connect(proxy, "g-signal",
+  //          G_CALLBACK (proxy_signals_on_signal), NULL);
+   // if (signal_handler_id == 0) {
+   //     RLOGE("listen singal fail!");
+   // }
+}
+
+void* init_data_gdbus_cb(void *param)
+{
+    /* all the tests rely on a shared main loop */
+    loop = g_main_loop_new(NULL, FALSE);
+
+    g_dbus_proxy_new_for_bus(G_BUS_TYPE_SYSTEM,
+            G_DBUS_PROXY_FLAGS_NONE,
+            NULL, /* GDBusInterfaceInfo */
+            GPIO_SERVICE, /* name */
+            GPIO_DATA_PATH, /* object path */
+            GPIO_DATA_INTERFACE, /* interface */
+            NULL, /* GCancellable */
+            proxy_ready,
+            NULL);
+
+    g_main_loop_run(loop);
+
+    RLOGD("data gdbus main loop run()");
+    if(proxy != NULL) {
+        g_object_unref (proxy);
+    }
+    if(loop != NULL) {
+        g_main_loop_unref(loop);
+    }
+}
+
+
+void startGdbusLoop(void)
+{
+    pthread_t gpioThread;
+
+    RLOGD("startGdbusLoop()");
+   // pthread_mutex_lock(&s_startupMutex);
+    pthread_attr_t attr;
+    pthread_attr_init(&attr);
+    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+    int result = pthread_create(&gpioThread, &attr, init_data_gdbus_cb, NULL);
+    if (result != 0) {
+        RLOGW("Failed to create gdbus thread: %s", strerror(result));
+        //goto done;
+    }
+//done:
+ //   pthread_mutex_unlock(&s_startupMutex);
+}
diff --git a/common_src/packages/apps/lynq-dev-test/src/makefile b/common_src/packages/apps/lynq-dev-test/src/makefile
new file mode 100644
index 0000000..478152b
--- /dev/null
+++ b/common_src/packages/apps/lynq-dev-test/src/makefile
@@ -0,0 +1,67 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+                -g -Os \
+                -flto \
+                -DRIL_SHLIB \
+                -DATCI_PARSE \
+                -DKEEP_ALIVE \
+                -D__LINUX_OS__ \
+                -DECALL_SUPPORT
+                
+CXXFLAGS = -fpermissive
+LOCAL_PATH   = .
+#CFLAGS = $(LOCAL_CFLAGS) -std=c99 
+#CXXFLAGS = $(LOCAL_CFLAGS) -std=gnu++14
+$(warning ################# ZHOUQUNCHAO ROOT: $(ROOT),includedir:$(includedir),LOCAL_PATH:$(LOCAL_PATH))
+LOCAL_C_INCLUDES = \
+  -I. \
+  -I$(LOCAL_PATH) \
+  -I$(ROOT)$(includedir)/logger \
+  -I$(ROOT)$(includedir)/vendor-ril \
+  -I$(ROOT)$(includedir)/liblynq-dev \
+  -I$(ROOT)$(includedir)/liblynq-media \
+  -I$(ROOT)$(includedir)/glib-2.0 \
+  -I$(ROOT)$(libdir)/glib-2.0/include \
+  -I$(ROOT)$(includedir)/dbus-1.0 \
+  -I$(ROOT)$(libdir)/dbus-1.0/include \
+
+LOCAL_C_INCLUDES+=$(DNS_FLAGS)
+
+LOCAL_LIBS := \
+    -L. \
+    -ldl \
+    -lstdc++ \
+    -llog \
+    -lcutils \
+    -lutils \
+    -lpthread \
+    -llynq-dev \
+    -llynq-media \
+    -lpal \
+    -lglib-2.0 \
+    -lgobject-2.0 \
+    -lgio-2.0 \
+    -lapn \
+    -ldbus-1 \
+
+LOCAL_SRC_FILES_CPP = $(wildcard *.cpp)
+LOCAL_SRC_FILES_C = $(wildcard *.c)
+EXECUTABLE = lynq-dev-test
+
+OBJECTS=$(LOCAL_SRC_FILES_CPP:.cpp=.o) $(LOCAL_SRC_FILES_C:.c=.o)
+all: $(EXECUTABLE)
+
+$(EXECUTABLE): $(OBJECTS)
+	$(CXX) $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@ 
+
+%.o: %.c
+	$(warning ----->build $<)
+	$(CC) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+%.o : %.cpp
+	$(CXX) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+
+.PHONY: clean
+clean:
+	$(RM) $(OBJECTS) $(EXECUTABLE)