[Feature]add MT2731_MP2_MR2_SVN388 baseline version
Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/src/lynq/lib/liblynq-tele-ril/lynq-riltel/resp_timeout.cpp b/src/lynq/lib/liblynq-tele-ril/lynq-riltel/resp_timeout.cpp
new file mode 100644
index 0000000..f93a65e
--- /dev/null
+++ b/src/lynq/lib/liblynq-tele-ril/lynq-riltel/resp_timeout.cpp
@@ -0,0 +1,103 @@
+/* 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) 2010. 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.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#include <glib.h>
+#include <vendor-ril/telephony/ril.h>
+#include <stdio.h>
+#include <log/log.h>
+
+#undef LOG_TAG
+#define LOG_TAG "DEMO_RESP_TIMEOUT"
+
+static GSource *g_resp_source[2];
+static GMutex mutex;
+static bool tag[2] = {false,false};
+static char* name[2] = {"one_minutes_timesout_0","ont_minutes_timesout_1"};
+
+extern void ARspRequest (int request, RIL_SOCKET_ID socket_id);
+
+static gboolean resp_cb(gpointer data) {
+ RLOGD("execute response command: RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM");
+ ARspRequest(RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM, (RIL_SOCKET_ID)(GPOINTER_TO_INT (data)));
+ return G_SOURCE_REMOVE;
+}
+
+static gpointer start_timeout_func(gpointer data) {
+ RLOGD("start_timeout_func");
+ GMainContext *ctx;
+ GMainLoop *loop;
+
+ ctx = g_main_context_new ();
+ loop = g_main_loop_new (ctx, FALSE);
+ int slot = GPOINTER_TO_INT(data);
+ g_resp_source[slot] = g_timeout_source_new (1000*60); //one minutes
+ g_source_set_callback (g_resp_source[slot], resp_cb, data, NULL);
+ g_source_attach (g_resp_source[slot], ctx);
+ g_source_unref (g_resp_source[slot]);
+
+ g_main_loop_run (loop);
+
+ RLOGD("release loop and context");
+ g_main_loop_unref (loop);
+ g_main_context_unref (ctx);
+ return NULL;
+}
+
+void setup_timeout(int slot_id) {
+ RLOGD("setup_timeout");
+ g_mutex_lock(&mutex);
+ gpointer result;
+ GThread *thread;
+ GError *error = NULL;
+
+ thread = g_thread_try_new (name[slot_id], start_timeout_func, GINT_TO_POINTER (slot_id), &error);
+ tag[slot_id] = true;
+ g_mutex_unlock(&mutex);
+ g_thread_unref (thread);
+}
+
+void clear_timeout(int slot_id) {
+ RLOGD("stop timeout configuration");
+ g_mutex_lock(&mutex);
+ if (tag[slot_id])
+ {
+ tag[slot_id] = false;
+ if (!g_source_is_destroyed(g_resp_source[slot_id]))
+ {
+ g_source_destroy(g_resp_source[slot_id]);
+ }
+ }
+ g_mutex_unlock(&mutex);
+}