From: kismo Date: Tue, 28 Jan 2020 06:03:01 +0000 (+0900) Subject: service state changed callback X-Git-Tag: submit/tizen/20200228.062845~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1148e7cbafd24ae125ec6abdd39523f3463fc13;p=platform%2Fcore%2Fuifw%2Fvoice-control.git service state changed callback - before : VC_SERVICE_STATE_NONE >> VC_SERVICE_STATE_READY changed callback is not called in main thread. - after : all the time, service state changed callback is called in main thread. Change-Id: I3dffe70e463b1991ffedfff572d29d6afb876ce0 (cherry picked from commit fad6d24fdd7f6cf400fc0ade63ec349811fd830b) --- diff --git a/client/vc_mgr.c b/client/vc_mgr.c old mode 100644 new mode 100755 index eb6c3b8..ed9bd15 --- a/client/vc_mgr.c +++ b/client/vc_mgr.c @@ -457,25 +457,6 @@ static Eina_Bool __vc_mgr_connect_daemon(void *data) /* Success to connect */ } - /* Set service state */ - vc_service_state_e previous_service_state; - vc_mgr_client_get_service_state(g_vc_m, &previous_service_state); - - vc_mgr_client_set_service_state(g_vc_m, (vc_service_state_e)service_state); - - vc_service_state_changed_cb service_changed_callback = NULL; - void* user_data = NULL; - vc_mgr_client_get_service_state_changed_cb(g_vc_m, &service_changed_callback, &user_data); - - if (NULL != service_changed_callback) { - vc_mgr_client_use_callback(g_vc_m); - service_changed_callback(previous_service_state, service_state, user_data); - vc_mgr_client_not_use_callback(g_vc_m); - SLOG(LOG_INFO, TAG_VCM, "Service state changed callback is called"); - } else { - SLOG(LOG_WARN, TAG_VCM, "[WARNING] Service state changed callback is null"); - } - /* Set foreground */ vc_mgr_client_set_foreground(g_vc_m, foreground, true); @@ -485,6 +466,7 @@ static Eina_Bool __vc_mgr_connect_daemon(void *data) vc_mgr_client_set_client_state(g_vc_m, VC_STATE_READY); vc_state_changed_cb changed_callback = NULL; + void* user_data = NULL; vc_mgr_client_get_state_changed_cb(g_vc_m, &changed_callback, &user_data); vc_state_e current_state; diff --git a/server/vcd_server.c b/server/vcd_server.c old mode 100644 new mode 100755 index d632034..98768a1 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -1613,6 +1613,15 @@ int vcd_server_get_foreground() return pid; } +static Eina_Bool __vcd_send_service_state(void *data) +{ + vcd_config_set_service_state(VCD_STATE_READY); + vcdc_send_service_state(VCD_STATE_READY); + + SLOG(LOG_INFO, TAG_VCD, "[Server Success] success to send service status for READY"); + + return EINA_FALSE; +} /* * API for manager @@ -1636,6 +1645,8 @@ int vcd_server_mgr_initialize(int pid) if (0 != vcdc_send_manager_pid(pid)) SLOG(LOG_WARN, TAG_VCD, "[Server WARNING] Fail to send manager pid"); + ecore_timer_add(0.05, __vcd_send_service_state, NULL); + SLOG(LOG_ERROR, TAG_VCD, "[Server Success] Manager initialize : pid(%d)", pid); return VCD_ERROR_NONE;