};
static struct __voice_control_wrapper_s vcw = {0, 0, 0, 0, 0, 0, 0, 0};
+static Ecore_Timer *g_initialize_timer = NULL;
+#define INITIALIZE_INTERVAL_TIME 300
static vc_h g_vc_w;
VC_ELM_LOG_DBG("SEND CURRENT COMMAND GROUP cb CALLED");
}
-static void __start_initialize_thread(void *data, Ecore_Thread *thread)
+static Eina_Bool __vc_elm_widget_wrapper_initialize_timer_cb(void *data)
{
(void)data;
- (void)thread;
char *lang = NULL;
if (vcw.initialized) {
VC_ELM_LOG_ERR("already initialized");
- return;
+ g_initialize_timer = NULL;
+ return EINA_FALSE;
}
- int retry_cnt = 0;
int ret = -1;
- while (retry_cnt < MAX_RETRY_CNT && 0 != (ret = vc_widget_initialize(&g_vc_w))) {
+ if (0 != (ret = vc_widget_initialize(&g_vc_w))) {
VC_ELM_LOG_ERR("Fail to vc_widet_initialize, ret(%d)", ret);
- usleep(500000);
- retry_cnt++;
+ if (INITIALIZE_INTERVAL_TIME != (int)ecore_timer_interval_get(g_initialize_timer) * 1000) {
+ VC_ELM_LOG_INFO("Set initializing timer to %d ms", INITIALIZE_INTERVAL_TIME);
+ ecore_timer_interval_set(g_initialize_timer, (double)(INITIALIZE_INTERVAL_TIME / 1000));
+ }
+ return EINA_TRUE;
}
VC_ERROR_CHECK(vc_widget_set_error_cb(g_vc_w, &__vc_error_cb, NULL));
vcw.lang = lang;
vcw.initialized = 1;
- VC_ELM_LOG_ERR("[SUCCESS] vc elm initialized");
- return;
-}
-
-static void __end_initialize_thread(void *data, Ecore_Thread *thread)
-{
- (void)data;
- (void)thread;
-
- VC_ELM_LOG_ERR("[SUCCESS] End initialize thread");
+ g_initialize_timer = NULL;
+ return EINA_FALSE;
}
int _vc_elm_widget_wrapper_initialize()
int ret = -1;
if (0 != (ret = vc_widget_initialize(&g_vc_w))) {
VC_ELM_LOG_ERR("Fail to vc_widet_initialize, ret(%d)", ret);
- ecore_thread_run(__start_initialize_thread, __end_initialize_thread, NULL, NULL);
+ if (g_initialize_timer)
+ ecore_timer_del(g_initialize_timer);
+ g_initialize_timer = ecore_timer_add(0.0, __vc_elm_widget_wrapper_initialize_timer_cb, NULL);
return ret;
}