# for the use of ecore_wl2
ADD_DEFINITIONS("-DEFL_BETA_API_SUPPORT")
-FIND_PROGRAM(GDBUS_CODEGEN NAMES gdbus-codegen)
-EXEC_PROGRAM(${GDBUS_CODEGEN} ARGS "\\
- --generate-c-code ${CMAKE_CURRENT_SOURCE_DIR}/common/vc_gdbus \\
- --c-namespace GDBus\\
- --interface-prefix org.tizen.voice. \\
- ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.voice.voice-control.gdbus.xml \\
- ")
-
# pkg config tool
INCLUDE(FindPkgConfig)
INCLUDE(FindPkgConfig)
IF("${_TV_PRODUCT}" STREQUAL "TRUE")
pkg_check_modules(pkgs REQUIRED
- aul buxton2 capi-appfw-app-control capi-appfw-app-manager capi-base-common capi-media-audio-io capi-media-sound-manager ecore-wl2 gio-2.0 gio-unix-2.0
+ aul buxton2 capi-appfw-app-control capi-appfw-app-manager capi-base-common capi-media-audio-io capi-media-sound-manager ecore-wl2
capi-network-bluetooth capi-network-bluetooth-tv capi-system-info cynara-client cynara-session dbus-1 db-util dlog ecore glib-2.0 json-glib-1.0 libgum libtzplatform-config libxml-2.0 sqlite3 vconf msfapi farfield-voice-api
)
ELSE()
pkg_check_modules(pkgs REQUIRED
- aul buxton2 capi-appfw-app-control capi-appfw-app-manager capi-base-common capi-media-audio-io capi-media-sound-manager ecore-wl2 gio-2.0 gio-unix-2.0
+ aul buxton2 capi-appfw-app-control capi-appfw-app-manager capi-base-common capi-media-audio-io capi-media-sound-manager ecore-wl2
capi-system-info cynara-client cynara-session dbus-1 db-util dlog ecore glib-2.0 json-glib-1.0 libgum libtzplatform-config libxml-2.0 sqlite3 vconf
)
ENDIF()
## config ##
INSTALL(FILES ${CMAKE_SOURCE_DIR}/vc-config.xml DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc/1.0)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.voice.vcdaemon.service DESTINATION ${TZ_SYS_RO_SHARE}/dbus-1/services)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.voice.vcserver.service DESTINATION ${TZ_SYS_RO_SHARE}/dbus-1/services)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/vc-service.conf DESTINATION /etc/dbus-1/session.d)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/vc-server.conf DESTINATION /etc/dbus-1/session.d)
## vc_getengine ##
IF("${ARCH}" MATCHES "^arm.*")
../common/vc_config_parser.c
../common/vc_info_parser.c
../common/vc_json_parser.c
- ../common/vc_gdbus.c
)
SET(SETTING_SRCS
vc_setting.c
../common/vc_config_mgr.c
../common/vc_config_parser.c
- ../common/vc_gdbus.c
)
SET(WIDGET_SRCS
../common/vc_config_parser.c
../common/vc_info_parser.c
../common/vc_json_parser.c
- ../common/vc_gdbus.c
)
SET(MANAGER_SRCS
../common/vc_config_parser.c
../common/vc_info_parser.c
../common/vc_json_parser.c
- ../common/vc_gdbus.c
)
#INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
int vc_initialize(void)
{
- if (!ecore_main_loop_glib_integrate()) {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail ecore_main_loop_glib_integrate()");
- }
-
if (0 != __vc_get_feature_enabled()) {
return VC_ERROR_NOT_SUPPORTED;
}
}
}
-int __vc_cb_error(int reason, int daemon_pid, const char* msg)
+int __vc_cb_error(int reason, int daemon_pid, char* msg)
{
vc_state_e state;
if (0 != vc_client_get_client_state(g_vc, &state)) {
#include "vc_dbus.h"
#include "vc_main.h"
-#define USE_GDBUS
+static pthread_mutex_t g_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
+static int g_waiting_time = 3000;
+static int g_waiting_short_time = 200;
+static bool g_is_connection_opened = false;
-static GDBusConnection* g_connection = NULL;
-static GDBusVcdaemon *g_daemon_proxy = NULL;
-static int g_own_name_id = 0;
-static guint g_name_owner_changed_subscription_id = 0;
+static Ecore_Fd_Handler* g_fd_handler = NULL;
+
+static DBusConnection* g_conn_sender = NULL;
+static DBusConnection* g_conn_listener = NULL;
-extern int __vc_cb_error(int reason, int daemon_pid, const char* msg);
+extern int __vc_cb_error(int reason, int daemon_pid, char* msg);
extern void __vc_cb_result();
extern int __vc_cb_tts_streaming(int utt_id, vc_feedback_event_e event, char* buffer, int len);
extern int __vc_cb_utterance_status(int utt_id, int utt_status);
-#else
-static pthread_mutex_t g_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
-static bool g_is_connection_opened = false;
-static int g_waiting_time = 3000;
-static int g_waiting_short_time = 200;
-static Ecore_Fd_Handler* g_fd_handler = NULL;
-static DBusConnection* g_conn_listener = NULL;
-static DBusConnection* g_conn_sender = NULL;
-
-#endif
//LCOV_EXCL_START
-#ifndef USE_GDBUS
static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
{
if (NULL == g_conn_listener) return ECORE_CALLBACK_RENEW;
g_conn_sender = NULL;
}
}
-#endif
-
-#ifdef USE_GDBUS
-static GDBusVcmanager* get_manager_proxy() {
- char service_name[64] = {0,};
- char object_path[64] = {0,};
-
- snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
- snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-
- GError *error = NULL;
- GDBusVcmanager *proxy = gdbus_vcmanager_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- service_name, object_path, NULL, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "[DBUS] Proxy : %p, service_name(%s), object_path(%s) : %s",
- proxy, service_name, object_path, error->message);
- g_error_free(error);
- }
-
- return proxy;
-}
-
-gboolean vcd_client_method_hello(GDBusVcclient *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int response = -1;
- if (pid > 0) {
- SLOG(LOG_DEBUG, TAG_VCC, "@@ vc get hello : pid(%d) ", pid);
- response = 1;
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "@@ vc get hello : invalid pid ");
- }
- gdbus_vcclient_complete_vcd_client_method_hello(service, invocation, response);
- return TRUE;
-}
-
-gboolean vcd_client_method_result(GDBusVcclient *service, GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- __vc_cb_result();
- gdbus_vcclient_complete_vcd_client_method_result(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_client_method_feedback_streaming(GDBusVcclient *service, GDBusMethodInvocation *invocation,
- gint utt_id, gint event, guint size, GVariant* buffer, gpointer user_data)
-{
- int len = 0;
- GVariantIter *iter;
- guchar uc;
-
- char *data = NULL;
- data = malloc(size);
- if (!data) return FALSE;
-
- g_variant_get(buffer, "ay", &iter);
- while (g_variant_iter_loop(iter, "y", &uc)) {
- if (len < size) {
- data[len++] = uc;
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] max size reached : %d", len);
- }
- }
- g_variant_iter_free(iter);
-
- int ret = __vc_cb_tts_streaming(utt_id, event, data, len);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to send_audio_streaming");
- }
-
- gdbus_vcclient_complete_vcd_client_method_feedback_streaming(service, invocation);
-
- free(data);
- return ret;
-}
-
-gboolean vcm_client_method_utterance_status(GDBusVcclient *service, GDBusMethodInvocation *invocation,
- gint utt_id, gint utt_status, gpointer user_data)
-{
- SLOG(LOG_INFO, TAG_VCC, "@@@ Get TTS utterance status streaming");
- __vc_cb_utterance_status(utt_id, utt_status);
- gdbus_vcclient_complete_vcm_client_method_utterance_status(service, invocation);
- return TRUE;
-}
-
-static void
-on_name_acquired(GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCC, "Name acquired : %s", name);
-
- GDBusVcclient *service;
- GError *error = NULL;
- gboolean ret = FALSE;
-
- service = gdbus_vcclient_skeleton_new();
-
- /* vc daemon methods */
- g_signal_connect(service, "handle-vcd-client-method-hello",
- G_CALLBACK(vcd_client_method_hello), NULL);
- g_signal_connect(service, "handle-vcd-client-method-result",
- G_CALLBACK(vcd_client_method_result), NULL);
- g_signal_connect(service, "handle-vcd-client-method-feedback-streaming",
- G_CALLBACK(vcd_client_method_feedback_streaming), NULL);
-
- /* vc manager methods */
- g_signal_connect(service, "handle-vcm-client-method-utterance-status",
- G_CALLBACK(vcm_client_method_utterance_status), NULL);
-
- ret = g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(service),
- connection, VC_CLIENT_SERVICE_OBJECT_PATH, &error);
- if (ret == FALSE || error) {
- SLOG(LOG_DEBUG, TAG_VCC, "Error : %s\n", error->message);
- g_error_free(error);
- }
-}
-
-static void vcd_signal_set_service_state(GDBusVcdaemon* proxy,
- gint state, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCC, "@@ state changed : %d", state);
- __vc_cb_service_state(state);
-}
-
-static void vcd_client_signal_send_error(GDBusVcdaemon* proxy,
- gint reason, gint daemon_pid, const gchar* err_msg, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCC, "@@ vc Get Error message : reason(%d), daemon_pid(%d), msg(%s)",
- reason, daemon_pid, err_msg);
- __vc_cb_error(reason, daemon_pid, err_msg);
-}
-
-static void vcd_client_signal_send_manager_pid(GDBusVcdaemon* proxy,
- gint manager_pid, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCC, "@@ manager pid is changed : %d", manager_pid);
- __vc_cb_manager_pid(manager_pid);
-}
-
-static void _on_name_owner_changed(GDBusConnection *connection,
- const gchar *sender_name, const gchar *object_path,
- const gchar *interface_name, const gchar *signal_name,
- GVariant *parameters, gpointer user_data)
-{
- gchar *name;
- gchar *old_owner;
- gchar *new_owner;
-
- g_variant_get(parameters,
- "(sss)",
- &name,
- &old_owner,
- &new_owner);
-
- if (g_name_owner_changed_subscription_id > 0) {
- g_dbus_connection_signal_unsubscribe(connection, g_name_owner_changed_subscription_id);
- g_name_owner_changed_subscription_id = 0;
- }
-
- SLOG(LOG_ERROR, TAG_VCC, "name_owner_changed(%s: %s -> %s) interface %s sender %s object %s",
- name, old_owner, new_owner, interface_name, sender_name, object_path);
- __vc_cb_error(VC_ERROR_SERVICE_RESET, -1, "Daemon Reset");
-
- g_free(name);
- g_free(old_owner);
- g_free(new_owner);
-}
-#endif
int vc_dbus_open_connection()
{
-#ifdef USE_GDBUS
- GError* error = NULL;
- g_connection = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
- int pid = getpid();
-
- char service_name[64];
- memset(service_name, '\0', 64);
- snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
- g_own_name_id = g_bus_own_name(G_BUS_TYPE_SESSION,
- service_name, G_BUS_NAME_OWNER_FLAGS_REPLACE, NULL, on_name_acquired, NULL, NULL, NULL);
- SLOG(LOG_DEBUG, TAG_VCC, "service_name : %s, %d", service_name, g_own_name_id);
-
- g_daemon_proxy = gdbus_vcdaemon_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- VC_DAEMON_SERVICE_NAME, VC_DAEMON_SERVICE_OBJECT_PATH, NULL, &error);
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- g_error_free(error);
- } else {
- /* vc common signals */
- g_signal_connect(g_daemon_proxy, "vcd-signal-set-service-state",
- G_CALLBACK(vcd_signal_set_service_state), NULL);
-
- /* vc daemon signals */
- g_signal_connect(g_daemon_proxy, "vcd-client-signal-send-error",
- G_CALLBACK(vcd_client_signal_send_error), NULL);
- g_signal_connect(g_daemon_proxy, "vcd-client-signal-send-manager-pid",
- G_CALLBACK(vcd_client_signal_send_manager_pid), NULL);
- }
-#else
pthread_mutex_lock(&g_dbus_mutex);
if (NULL != g_conn_sender && NULL != g_conn_listener) {
pthread_mutex_unlock(&g_dbus_mutex);
SLOG(LOG_INFO, TAG_VCC, "[INFO] vc client dbus connection is opened");
-#endif
+
return VC_ERROR_NONE;
}
int vc_dbus_close_connection()
{
-#ifdef USE_GDBUS
- if (g_daemon_proxy) {
- g_object_unref(g_daemon_proxy);
- g_daemon_proxy = NULL;
- }
- if (g_own_name_id) {
- g_bus_unown_name(g_own_name_id);
- g_own_name_id = 0;
- }
- if (g_connection != NULL) {
- g_object_unref(g_connection);
- g_connection = NULL;
- }
-#else
pthread_mutex_lock(&g_dbus_mutex);
DBusError err;
pthread_mutex_unlock(&g_dbus_mutex);
SLOG(LOG_INFO, TAG_VCC, "[INFO] vc client dbus connection is closed");
-#endif
+
return 0;
}
int vc_dbus_reconnect()
{
-#ifdef USE_GDBUS
- if (!g_own_name_id || !g_daemon_proxy) {
- vc_dbus_close_connection();
-
- if (0 != vc_dbus_open_connection()) {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to reconnect"); //LCOV_EXCL_LINE
- return -1;
- }
-
- SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Reconnect"); //LCOV_EXCL_LINE
- return 0;
- }
-#else
if (!g_conn_sender || !g_conn_listener) {
vc_dbus_close_connection();
SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Reconnect"); //LCOV_EXCL_LINE
}
-#endif
+
return 0;
}
static int __dbus_check()
{
-#ifdef USE_GDBUS
- SLOG(LOG_DEBUG, TAG_VCC, "%d %p", g_own_name_id, g_daemon_proxy); //LCOV_EXCL_LINE
- if (0 == g_own_name_id || NULL == g_daemon_proxy) {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
- return vc_dbus_reconnect();
- }
-#else
if (NULL == g_conn_sender || NULL == g_conn_listener) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
return vc_dbus_reconnect();
}
-#endif
return 0;
}
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vc_method_hello_sync(g_daemon_proxy, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Request vc hello"); //LCOV_EXCL_LINE
DBusMessage* msg;
}
return result;
-#endif
}
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_initialize_sync(g_daemon_proxy,
- pid, &result, mgr_pid, service_state, daemon_pid, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- if (0 == result && NULL != g_connection) {
- g_name_owner_changed_subscription_id = g_dbus_connection_signal_subscribe(g_connection,
- "org.freedesktop.DBus", "org.freedesktop.DBus", "NameOwnerChanged", "/org/freedesktop/DBus",
- VC_DAEMON_SERVICE_NAME, G_DBUS_SIGNAL_FLAGS_NONE, _on_name_owner_changed, NULL, NULL);
- }
- return result;
-#else
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
int vc_dbus_request_finalize(int pid)
{
-#ifdef USE_GDBUS
- if (0 != __dbus_check()) {
- return VC_ERROR_OPERATION_FAILED;
- }
-
- if (g_name_owner_changed_subscription_id > 0) {
- g_dbus_connection_signal_unsubscribe(g_connection, g_name_owner_changed_subscription_id);
- g_name_owner_changed_subscription_id = 0;
- }
-
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_finalize_sync(g_daemon_proxy, pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
-
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
//LCOV_EXCL_START
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_set_exclusive_cmd_sync(g_daemon_proxy, pid, value, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
//LCOV_EXCL_STOP
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_set_command_sync(g_daemon_proxy, pid, cmd_type, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
int vc_dbus_request_unset_command(int pid, vc_cmd_type_e cmd_type)
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- gint result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_unset_command_sync(g_daemon_proxy, pid, cmd_type, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
int vc_dbus_set_foreground(int pid, bool value)
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcc_manager_method_set_foreground(proxy,
- pid, value, NULL, NULL, NULL);
- if (proxy) g_object_unref(proxy);
-
- gdbus_vcdaemon_call_vcc_daemon_method_set_foreground(g_daemon_proxy,
- pid, value, NULL, NULL, NULL);
- return 0;
-#else
DBusMessage* msg = NULL;
int tmp_value = 0;
dbus_message_unref(msg);
return 0;
-#endif
}
//LCOV_EXCL_START
int vc_dbus_set_server_dialog(int pid, const char* app_id, const char* credential)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_set_server_dialog_sync(g_daemon_proxy, pid, app_id, credential, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection");
if (0 != vc_dbus_reconnect()) {
}
return result;
-#endif
}
//LCOV_EXCL_STOP
int vc_dbus_request_dialog(int pid, const char* disp_text, const char* utt_text, bool continuous)
{
-#ifdef USE_GDBUS
- int result = 0;
- gdbus_vcdaemon_call_vcc_daemon_method_dialog(g_daemon_proxy, pid, disp_text, utt_text, continuous, NULL, NULL, NULL);
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
if (0 != vc_dbus_reconnect()) {
return result;
*/
//LCOV_EXCL_STOP
-#endif
}
int vc_dbus_request_is_system_command_valid(int pid, bool* is_sys_cmd_valid)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- gboolean valid = FALSE;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_is_system_command_valid_sync(g_daemon_proxy, pid, &result, &valid, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- } else {
- if (is_sys_cmd_valid) *is_sys_cmd_valid = valid;
- }
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
if (0 != vc_dbus_reconnect()) {
}
return result;
-#endif
}
//LCOV_EXCL_START
/* Authority */
int vc_dbus_request_auth_enable(int pid, int mgr_pid)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_dbus_request_auth_disable(int pid, int mgr_pid)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_dbus_request_auth_start(int pid, int mgr_pid)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_dbus_request_auth_stop(int pid, int mgr_pid)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_dbus_request_auth_cancel(int pid, int mgr_pid)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
//LCOV_EXCL_STOP
int vc_dbus_request_tts(int pid, const char* text, const char* language, bool to_vcm, int* utt_id)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_request_tts_sync(g_daemon_proxy, pid, text, language, to_vcm, &result, utt_id, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection");
if (0 != vc_dbus_reconnect()) {
return result;
return 0;
-#endif
}
int vc_dbus_cancel_tts(int pid, int utt_id)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_cancel_tts_sync(g_daemon_proxy, pid, utt_id, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection");
if (0 != vc_dbus_reconnect()) {
return result;
return 0;
-#endif
}
int vc_dbus_get_tts_audio_format(int pid, int* rate, vc_audio_channel_e* channel, vc_audio_type_e* audio_type)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- gint out_channel, out_audio_type;
- if (!gdbus_vcdaemon_call_vcc_daemon_method_get_tts_audio_format_sync(g_daemon_proxy, pid, &result, rate, &out_channel, &out_audio_type, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- } else {
- if (channel) *channel = out_channel;
- if (audio_type) *audio_type = out_audio_type;
- }
- return result;
-#else
if (NULL == g_conn_sender) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] NULL connection");
if (0 != vc_dbus_reconnect()) {
return result;
return 0;
-#endif
}
static void __vc_mgr_notify_error(void *data);
static Eina_Bool __vc_mgr_notify_result(void *data);
-int __vc_mgr_cb_error(int reason, int daemon_pid, const char* msg);
+int __vc_mgr_cb_error(int reason, int daemon_pid, char* msg);
static const char* __vc_mgr_get_error_code(vc_error_e err)
}
}
-int __vc_mgr_cb_error(int reason, int daemon_pid, const char* msg)
+int __vc_mgr_cb_error(int reason, int daemon_pid, char* msg)
{
vc_state_e state;
if (0 != vc_mgr_client_get_client_state(g_vc_m, &state)) {
#include "vc_mgr_dbus.h"
#include "vc_command.h"
-#define USE_GDBUS
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
-
-static GDBusConnection* g_connection = NULL;
-static GDBusVcdaemon *g_daemon_proxy = NULL;
-static int g_own_name_id = 0;
-static guint g_watch_id = 0;
-static guint g_name_owner_changed_subscription_id = 0;
-static bool g_daemon_name_appeared = false;
-
-static int g_volume_count = 0;
-#else
static pthread_mutex_t g_m_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
-static Ecore_Fd_Handler* g_m_fd_handler = NULL;
-
-static bool g_is_connection_opened = false;
static int g_m_waiting_time = 3000;
static int g_m_waiting_short_time = 200;
+static bool g_is_connection_opened = false;
+
+static Ecore_Fd_Handler* g_m_fd_handler = NULL;
static DBusConnection* g_m_conn_sender = NULL;
static DBusConnection* g_m_conn_listener = NULL;
-#endif
+static int g_volume_count = 0;
+
extern void __vc_mgr_cb_all_result(vc_result_type_e type);
extern void __vc_mgr_cb_speech_detected();
-extern int __vc_mgr_cb_error(int reason, int daemon_pid, const char* msg);
+extern int __vc_mgr_cb_error(int reason, int daemon_pid, char* msg);
extern int __vc_mgr_cb_set_volume(float volume);
extern void __vc_mgr_cb_specific_engine_result(const char* engine_app_id, const char* event, const char* result);
-#ifndef USE_GDBUS
static Eina_Bool vc_mgr_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
{
if (NULL == g_m_conn_listener) return ECORE_CALLBACK_RENEW;
}
}
-#endif
-
-#ifdef USE_GDBUS
-gboolean vcd_manager_method_hello(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int response = -1;
- if (pid > 0) {
- SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr get hello : pid(%d) ", pid);
- response = 1;
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "@@ vc mgr get hello : invalid pid ");
- }
- gdbus_vcmanager_complete_vcd_manager_method_hello(service, invocation, response);
- return TRUE;
-}
-
-gboolean vcd_manager_method_speech_detected(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCM, "@@@ Get Speech detected");
- __vc_mgr_cb_speech_detected();
- gdbus_vcmanager_complete_vcd_manager_method_speech_detected(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_all_result(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint result_type, gpointer user_data)
-{
- __vc_mgr_cb_all_result((vc_result_type_e)result_type);
- gdbus_vcmanager_complete_vcd_manager_method_all_result(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_pre_result(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint event, const gchar* pre_result, gpointer user_data)
-{
- if (NULL != pre_result) {
- __vc_mgr_cb_pre_result((vc_pre_result_event_e)event, pre_result);
- }
- gdbus_vcmanager_complete_vcd_manager_method_pre_result(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_result(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- __vc_mgr_cb_system_result();
- gdbus_vcmanager_complete_vcd_manager_method_result(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_set_volume(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint volume, gpointer user_data)
-{
- if (10 == g_volume_count) {
- SLOG(LOG_DEBUG, TAG_VCM, "@@@ Set volume");
- SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr set volume : volume(%d)", volume);
- g_volume_count = 0;
- }
-
- __vc_mgr_cb_set_volume(volume);
- g_volume_count++;
- gdbus_vcmanager_complete_vcd_manager_method_set_volume(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_dialog(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint pid, const gchar* disp_text, const gchar* utt_text, gboolean continuous, gpointer user_data)
-{
- __vc_mgr_cb_dialog(pid, disp_text, utt_text, continuous);
- gdbus_vcmanager_complete_vcd_manager_method_dialog(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_set_private_data(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint pid, const gchar* key, const gchar* data, gpointer user_data)
-{
- if (pid > 0) {
- SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr get request set private data : pid(%d) ", pid);
- __vc_mgr_cb_private_data_set(key, data);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "@@ vc mgr get request set private data : invalid pid ");
- }
- gdbus_vcmanager_complete_vcd_manager_method_set_private_data(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_get_private_data(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* key, gpointer user_data)
-{
- gint ret = 0;
- gchar* value = NULL;
- if (pid > 0) {
- SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr get request get private data : pid(%d) ", pid);
- ret = __vc_mgr_cb_private_data_requested(key, &value);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "@@ vc mgr get request get private data : invalid pid ");
- }
- gdbus_vcmanager_complete_vcd_manager_method_get_private_data(service, invocation, ret, value);
- return TRUE;
-}
-
-gboolean vcd_manager_method_specific_engine_result(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- const gchar* engine_app_id, const gchar* event, const gchar* result, gpointer user_data)
-{
- if (NULL != result) {
- __vc_mgr_cb_specific_engine_result(engine_app_id, event, result);
- }
- gdbus_vcmanager_complete_vcd_manager_method_specific_engine_result(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_feedback_audio_format(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint rate, gint channel, gint audio_type, gpointer user_data)
-{
- __vc_mgr_cb_feedback_audio_format(rate, channel, audio_type);
- gdbus_vcmanager_complete_vcd_manager_method_feedback_audio_format(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_manager_method_feedback_streaming(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- gint pid, gint utt_id, gint event, guint size, GVariant* buffer, gpointer user_data)
-{
- int index = 0;
- GVariantIter *iter;
- guchar uc;
-
- char *data = NULL;
- data = malloc(size);
- if (!data) return FALSE;
-
- g_variant_get(buffer, "ay", &iter);
- while (g_variant_iter_loop(iter, "y", &uc)) {
- if (index < size) {
- data[index++] = uc;
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] max size reached : %d", index);
- }
- }
- g_variant_iter_free(iter);
-
- __vc_mgr_cb_feedback_streaming(pid, utt_id, event, data, size);
-
- gdbus_vcmanager_complete_vcd_manager_method_feedback_streaming(service, invocation);
-
- free(data);
- return TRUE;
-}
-
-gboolean vcc_manager_method_set_foreground(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCM, "@@ foreground changed : pid(%d) value(%s)", pid, value ? "true" : "false");
-
- __vc_mgr_cb_set_foreground(pid, value);
- gdbus_vcmanager_complete_vcc_manager_method_set_foreground(service, invocation);
- return TRUE;
-}
-
-gboolean vcw_manager_method_set_foreground(GDBusVcmanager *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCM, "@@ foreground changed : pid(%d) value(%s)", pid, value ? "true" : "false");
-
- __vc_mgr_cb_set_foreground(pid, value);
- gdbus_vcmanager_complete_vcw_manager_method_set_foreground(service, invocation);
- return TRUE;
-}
-
-static void
-on_name_acquired(GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCM, "Name acquired : %s", name);
-
- GDBusVcmanager *service;
- GError *error = NULL;
-
- service = gdbus_vcmanager_skeleton_new();
-
- /* vc client methods */
- g_signal_connect(service, "handle-vcc-manager-method-set-foreground",
- G_CALLBACK(vcc_manager_method_set_foreground), NULL);
-
- /* vc daemon methods */
- g_signal_connect(service, "handle-vcd-manager-method-hello",
- G_CALLBACK(vcd_manager_method_hello), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-speech-detected",
- G_CALLBACK(vcd_manager_method_speech_detected), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-all-result",
- G_CALLBACK(vcd_manager_method_all_result), NULL);
-
- g_signal_connect(service, "handle-vcd-manager-method-pre-result",
- G_CALLBACK(vcd_manager_method_pre_result), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-result",
- G_CALLBACK(vcd_manager_method_result), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-set-volume",
- G_CALLBACK(vcd_manager_method_set_volume), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-dialog",
- G_CALLBACK(vcd_manager_method_dialog), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-set-private-data",
- G_CALLBACK(vcd_manager_method_set_private_data), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-get-private-data",
- G_CALLBACK(vcd_manager_method_get_private_data), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-specific-engine-result",
- G_CALLBACK(vcd_manager_method_specific_engine_result), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-feedback-audio-format",
- G_CALLBACK(vcd_manager_method_feedback_audio_format), NULL);
- g_signal_connect(service, "handle-vcd-manager-method-feedback-streaming",
- G_CALLBACK(vcd_manager_method_feedback_streaming), NULL);
-
- /* vc widget methods */
- g_signal_connect(service, "handle-vcw-manager-method-set-foreground",
- G_CALLBACK(vcw_manager_method_set_foreground), NULL);
-
- g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(service),
- connection, VC_MANAGER_SERVICE_OBJECT_PATH, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCM, "Error : %s\n", error->message);
- g_error_free(error);
- }
-}
-
-static void _on_name_owner_changed(GDBusConnection *connection,
- const gchar *sender_name, const gchar *object_path,
- const gchar *interface_name, const gchar *signal_name,
- GVariant *parameters, gpointer user_data)
-{
- gchar *name;
- gchar *old_owner;
- gchar *new_owner;
-
- g_variant_get(parameters,
- "(sss)",
- &name,
- &old_owner,
- &new_owner);
-
- if (g_name_owner_changed_subscription_id > 0) {
- g_dbus_connection_signal_unsubscribe(connection, g_name_owner_changed_subscription_id);
- g_name_owner_changed_subscription_id = 0;
- }
-
- SLOG(LOG_ERROR, TAG_VCM, "name_owner_changed(%s: %s -> %s) interface %s sender %s object %s",
- name, old_owner, new_owner, interface_name, sender_name, object_path);
- __vc_mgr_cb_error(VC_ERROR_SERVICE_RESET, -1, "Daemon Reset");
-
- g_free(name);
- g_free(old_owner);
- g_free(new_owner);
-}
-
-static void name_appeared_handler(GDBusConnection *connection,
- const gchar *name, const gchar *name_owner, gpointer user_data)
-{
- SLOG(LOG_INFO, TAG_VCM, "@@ Name appeared : name %s owner %s", name, name_owner);
- g_daemon_name_appeared = true;
-}
-
-static void name_vanished_handler(GDBusConnection *connection,
- const gchar *name, gpointer user_data)
-{
- SLOG(LOG_INFO, TAG_VCM, "@@ Name vanished : name %s", name);
- g_daemon_name_appeared = false;
-}
-
-#endif
-
-static void vcd_signal_set_service_state(GDBusVcdaemon* proxy,
- gint state, gpointer user_data)
-{
- SLOG(LOG_INFO, TAG_VCM, "@@ state changed : %d", state);
-
- __vc_mgr_cb_service_state(state);
-}
-
-static void vcd_manager_signal_send_error(GDBusVcdaemon* proxy,
- gint reason, gint daemon_pid, const gchar* err_msg, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCM, "Error Signal : reason(%d), daemon_pid(%d), err_msg(%s)",
- reason, daemon_pid, err_msg);
-}
-
int vc_mgr_dbus_open_connection()
{
-#ifdef USE_GDBUS
- GError* error = NULL;
- g_connection = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
- g_watch_id = g_bus_watch_name_on_connection(g_connection, VC_DAEMON_SERVICE_NAME, 0,
- name_appeared_handler,
- name_vanished_handler,
- NULL, NULL);
-
- char service_name[64];
- memset(service_name, '\0', 64);
- snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
- g_own_name_id = g_bus_own_name(G_BUS_TYPE_SESSION,
- service_name, 0, NULL, on_name_acquired, NULL, NULL, NULL);
- SLOG(LOG_DEBUG, TAG_VCM, "service_name : %s, %d", service_name, g_own_name_id);
-
- g_daemon_proxy = gdbus_vcdaemon_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- VC_DAEMON_SERVICE_NAME, VC_DAEMON_SERVICE_OBJECT_PATH, NULL, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCM, "Error : %s", error->message);
- g_error_free(error);
- } else {
- /* vc common signals */
- g_signal_connect(g_daemon_proxy, "vcd-signal-set-service-state",
- G_CALLBACK(vcd_signal_set_service_state), NULL);
-
- /* vc manager signals */
- g_signal_connect(g_daemon_proxy, "vcd-manager-signal-send-error",
- G_CALLBACK(vcd_manager_signal_send_error), NULL);
- }
-#else
pthread_mutex_lock(&g_m_dbus_mutex);
if (NULL != g_m_conn_sender && NULL != g_m_conn_listener) {
pthread_mutex_unlock(&g_m_dbus_mutex);
SLOG(LOG_INFO, TAG_VCM, "[INFO] manager dbus connection is opened");
-#endif
+
return VC_ERROR_NONE;
}
int vc_mgr_dbus_close_connection()
{
-#ifdef USE_GDBUS
- if (g_daemon_proxy) {
- g_object_unref(g_daemon_proxy);
- g_daemon_proxy = NULL;
- }
- if (g_own_name_id) {
- g_bus_unown_name(g_own_name_id);
- g_own_name_id = 0;
- }
- if (g_watch_id) {
- g_bus_unwatch_name(g_watch_id);
- g_watch_id = 0;
- }
- if (g_connection != NULL) {
- g_object_unref(g_connection);
- g_connection = NULL;
- }
-#else
pthread_mutex_lock(&g_m_dbus_mutex);
DBusError err;
pthread_mutex_unlock(&g_m_dbus_mutex);
SLOG(LOG_INFO, TAG_VCM, "[INFO] manager dbus connection is closed");
-#endif
+
return VC_ERROR_NONE;
}
int vc_mgr_dbus_reconnect()
{
-#ifdef USE_GDBUS
- if (!g_own_name_id || !g_daemon_proxy) {
- vc_mgr_dbus_close_connection();
-
- if (0 != vc_mgr_dbus_open_connection()) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to reconnect"); //LCOV_EXCL_LINE
- return -1;
- }
-
- SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Reconnect"); //LCOV_EXCL_LINE
- return 0;
- }
-#else
if (!g_m_conn_sender || !g_m_conn_listener) {
vc_mgr_dbus_close_connection();
SLOG(LOG_DEBUG, TAG_VCM, "[DBUS] Reconnect");
}
-#endif
+
return 0;
}
static int __dbus_check()
{
-#ifdef USE_GDBUS
- SLOG(LOG_DEBUG, TAG_VCM, "%d %p", g_own_name_id, g_daemon_proxy); //LCOV_EXCL_LINE
- if (0 == g_own_name_id || NULL == g_daemon_proxy) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
- return vc_mgr_dbus_reconnect();
- }
-#else
if (NULL == g_m_conn_sender || NULL == g_m_conn_listener) {
SLOG(LOG_ERROR, TAG_VCM, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
return vc_mgr_dbus_reconnect();
}
-#endif
return 0;
}
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vc_method_hello_sync(g_daemon_proxy, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
static int __dbus_restore_daemon()
int ret = -1;
int count = 0;
while (0 != ret) {
- usleep(100000);
- SLOG(LOG_DEBUG, TAG_VCM, "[DEBUG] requesting hello : %d", count);
ret = vc_mgr_dbus_request_hello();
if (0 != ret) {
- SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry restore daemon");
- count++;
- if (VC_RETRY_COUNT == count) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
+ if (VC_ERROR_TIMED_OUT != ret) {
+ SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
break;
+ } else {
+ SLOG(LOG_WARN, TAG_VCM, "[WARNING] retry restore daemon");
+ usleep(10000);
+ count++;
+ if (VC_RETRY_COUNT == count) {
+ SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to request");
+ break;
+ }
}
} else {
SLOG(LOG_ERROR, TAG_VCM, "[SUCCESS] restore daemon");
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- }
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_initialize_sync(g_daemon_proxy,
- pid, audio_streaming_mode, &result, service_state, foreground, daemon_pid, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- if (0 == result && NULL != g_connection && 0 == g_name_owner_changed_subscription_id) {
- g_name_owner_changed_subscription_id = g_dbus_connection_signal_subscribe(g_connection,
- "org.freedesktop.DBus", "org.freedesktop.DBus", "NameOwnerChanged", "/org/freedesktop/DBus",
- VC_DAEMON_SERVICE_NAME, G_DBUS_SIGNAL_FLAGS_NONE, _on_name_owner_changed, NULL, NULL);
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_finalize(int pid)
{
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
+ if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
- GError *error = NULL;
- gint result;
- if (g_name_owner_changed_subscription_id > 0) {
- g_dbus_connection_signal_unsubscribe(g_connection, g_name_owner_changed_subscription_id);
- g_name_owner_changed_subscription_id = 0;
- }
- if (!gdbus_vcdaemon_call_vcm_daemon_method_finalize_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
vc_mgr_dbus_reconnect();
result = VC_ERROR_TIMED_OUT;
}
-#endif
+
return result;
}
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_set_command_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_unset_command(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_unset_command_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_demandable_client(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_set_demandable_client_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_set_audio_type(int pid, const char* audio_type)
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
-
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_set_audio_type_sync(g_daemon_proxy,
- pid, audio_type, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_get_audio_type(int pid, char** audio_type)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- gchar *temp = NULL;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_get_audio_type_sync(g_daemon_proxy,
- pid, &result, &temp, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- if (NULL != audio_type && NULL != temp) {
- *audio_type = strdup(temp);
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_set_private_data(int pid, const char* key, const char* data)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_call_vcm_daemon_method_set_private_data(g_daemon_proxy,
- pid, key, data, NULL, NULL, NULL);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return VC_ERROR_NONE;
-#endif
}
int vc_mgr_dbus_request_get_private_data(int pid, const char* key, char** data)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- gint result = 0;
- gchar *temp = NULL;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_get_private_data_sync(g_daemon_proxy,
- pid, key, &result, &temp, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- if (NULL != data && NULL != temp) {
- *data = strdup(temp);
- }
- return result;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_mgr_dbus_request_set_client_info(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
-
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_set_client_info_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
- if (0 != __dbus_check()) {
- return VC_ERROR_OPERATION_FAILED;
- }
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_set_domain(int pid, const char* domain)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_set_domain_sync(g_daemon_proxy,
- pid, domain, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_mgr_dbus_request_do_action(int pid, vc_send_event_type_e type, char* send_event)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_call_vcm_daemon_method_do_action(g_daemon_proxy,
- pid, type, send_event, NULL, NULL, NULL);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_mgr_dbus_request_start(int pid, int recognition_mode, bool exclusive_command_option, bool start_by_client)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
-
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_request_start_sync(g_daemon_proxy,
- pid, recognition_mode, exclusive_command_option, start_by_client, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
- if (0 != __dbus_check()) {
- return VC_ERROR_OPERATION_FAILED;
- }
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_stop(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_request_stop_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_cancel(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_request_cancel_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_enable_command_type(int pid, int cmd_type)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_enable_command_type_sync(g_daemon_proxy,
- pid, cmd_type, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
int vc_mgr_dbus_request_disable_command_type(int pid, int cmd_type)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
-
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_disable_command_type_sync(g_daemon_proxy,
- pid, cmd_type, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
- if (0 != __dbus_check()) {
- return VC_ERROR_OPERATION_FAILED;
- }
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
-#ifndef USE_GDBUS
static DBusMessage* __get_message(int pid, const char* method, int type)
{
char service_name[64];
return dbus_message_new_method_call(service_name, object_path, target_if_name, method);
}
-#endif
int vc_mgr_dbus_send_result(int pid, int cmd_type, int result_id)
{
-#ifdef USE_GDBUS
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_mgr_dbus_send_result_selection(int pid)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_call_vcm_daemon_method_result_selection(g_daemon_proxy,
- pid, NULL, NULL, NULL);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
}
return 0;
-#endif
}
int vc_mgr_dbus_send_specific_engine_request(int pid, const char* engine_app_id, const char* event, const char* request)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_call_vcm_daemon_method_specific_engine_request(g_daemon_proxy,
- pid, engine_app_id, event, request, NULL, NULL, NULL);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_mgr_dbus_send_utterance_status(int pid, int utt_id, int utt_status)
{
-#ifdef USE_GDBUS
- /* To Client */
- //gdbus_vcdaemon_call_vcm_daemon_method_utterance_status(g_daemon_proxy,
- // utt_id, utt_status, NULL, NULL, NULL);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_mgr_dbus_send_audio_streaming(int pid, vc_audio_streaming_event_e event, unsigned char* buffer, unsigned int len)
{
-#ifdef USE_GDBUS
- GVariant *variant = g_variant_new_from_data(G_VARIANT_TYPE ("ay"),
- buffer, len, TRUE, NULL, NULL);
-
- gdbus_vcdaemon_call_vcm_daemon_method_send_audio_streaming(g_daemon_proxy,
- pid, event, len, variant, NULL, NULL, NULL);
-
- g_variant_ref(variant);
- return 0;
-#else
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_mgr_dbus_change_system_volume(int pid, vc_system_volume_event_e volume_event)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- if (false == g_daemon_name_appeared) {
- int ret = __dbus_restore_daemon();
- if (VC_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_VCM, "[ERROR] Fail to restore daemon");
- return VC_ERROR_TIMED_OUT;
- }
- return VC_ERROR_OPERATION_FAILED;
- }
-
- GError *error = NULL;
- gint result;
- if (!gdbus_vcdaemon_call_vcm_daemon_method_change_system_volume_sync(g_daemon_proxy,
- pid, volume_event, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCM, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCM, "Failed without explicit error");
- }
- }
- return result;
-#else
- if (0 != __dbus_check()) {
- return VC_ERROR_OPERATION_FAILED;
- }
DBusError err;
dbus_error_init(&err);
}
return result;
-#endif
}
#include "vc_setting_dbus.h"
#include "vc_main.h"
-#define USE_GDBUS
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
-
-static GDBusVcdaemon *g_daemon_proxy = NULL;
-static int g_own_name_id = 0;
-
-#else
static int g_s_waiting_time = 3000;
static Ecore_Fd_Handler* g_s_fd_handler = NULL;
static DBusConnection* g_s_conn_sender = NULL;
static DBusConnection* g_s_conn_listener = NULL;
-#endif
-#ifndef USE_GDBUS
static Eina_Bool listener_setting_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
{
if (NULL == g_s_conn_listener) return ECORE_CALLBACK_RENEW;
g_s_conn_sender = NULL;
}
}
-#endif
-
-#ifdef USE_GDBUS
-static void
-on_name_acquired(GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCS, "Name acquired : %s", name);
-
- GDBusVcsetting *service;
- GError *error = NULL;
-
- service = gdbus_vcsetting_skeleton_new();
-
- g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(service),
- connection, VC_SETTING_SERVICE_OBJECT_PATH, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCS, "Error : %s\n", error->message);
- g_error_free(error);
- }
-}
-
-#endif
int vc_setting_dbus_open_connection()
{
-#ifdef USE_GDBUS
- int pid = getpid();
-
- char service_name[64];
- memset(service_name, '\0', 64);
- snprintf(service_name, 64, "%s%d", VC_SETTING_SERVICE_NAME, pid);
- g_own_name_id = g_bus_own_name(G_BUS_TYPE_SESSION,
- service_name, 0, NULL, on_name_acquired, NULL, NULL, NULL);
- SLOG(LOG_DEBUG, TAG_VCS, "service_name : %s, %d", service_name, g_own_name_id);
-
- GError *error = NULL;
- g_daemon_proxy = gdbus_vcdaemon_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- VC_DAEMON_SERVICE_NAME, VC_DAEMON_SERVICE_OBJECT_PATH, NULL, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCS, "Error : %s", error->message);
- g_error_free(error);
- }
- return 0;
-#else
if (NULL != g_s_conn_sender && NULL != g_s_conn_listener) {
SLOG(LOG_WARN, TAG_VCS, "already existed connection ");
return 0;
}
return 0;
-#endif
}
int vc_setting_dbus_close_connection()
{
-#ifdef USE_GDBUS
- if (g_daemon_proxy) {
- g_object_unref(g_daemon_proxy);
- g_daemon_proxy = NULL;
- }
- if (g_own_name_id) {
- g_bus_unown_name(g_own_name_id);
- g_own_name_id = 0;
- }
- return 0;
-#else
DBusError err;
dbus_error_init(&err);
__vc_setting_dbus_connection_free();
return 0;
-#endif
}
int vc_setting_dbus_reconnect()
{
-#ifdef USE_GDBUS
- if (!g_own_name_id || !g_daemon_proxy) {
- vc_setting_dbus_close_connection();
-
- if (0 != vc_setting_dbus_open_connection()) {
- SLOG(LOG_ERROR, TAG_VCS, "[ERROR] Fail to reconnect"); //LCOV_EXCL_LINE
- return -1;
- }
-
- SLOG(LOG_DEBUG, TAG_VCS, "[DBUS] Reconnect"); //LCOV_EXCL_LINE
- }
- return 0;
-#else
if (!g_s_conn_sender || !g_s_conn_listener) {
vc_setting_dbus_close_connection();
}
return 0;
-#endif
}
int vc_setting_dbus_request_hello()
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vc_method_hello_sync(g_daemon_proxy, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCS, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCS, "Failed without explicit error");
- }
- }
- return result;
-#else
if (NULL == g_s_conn_sender) {
return VC_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vc_setting_dbus_request_set_language(int pid, const char* language)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcs_daemon_method_set_language_sync(g_daemon_proxy,
- pid, language, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCS, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCS, "Failed without explicit error");
- }
- }
- return result;
-#else
if (NULL == g_s_conn_sender) {
SLOG(LOG_ERROR, TAG_VCS, "[ERROR] Dbus does not open");
return VC_ERROR_OPERATION_FAILED;
}
return result;
-#endif
}
#include "vc_widget_client.h"
#include "vc_widget_dbus.h"
-#define USE_GDBUS
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
-
-static GDBusVcdaemon *g_daemon_proxy = NULL;
-static int g_own_name_id = 0;
-#else
-static pthread_mutex_t g_w_init_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t g_w_dbus_mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t g_w_init_mutex = PTHREAD_MUTEX_INITIALIZER;
static int g_w_waiting_time = 3000;
static int g_w_waiting_short_time = 200;
-
static bool g_is_connection_opened = false;
static Ecore_Fd_Handler* g_w_fd_handler = NULL;
-static DBusConnection* g_w_conn_listener = NULL;
static DBusConnection* g_w_conn_sender = NULL;
-#endif
+static DBusConnection* g_w_conn_listener = NULL;
extern int __vc_widget_cb_error(int reason, int daemon_pid, char* msg);
extern int __vc_widget_cb_service_state(int state);
-#ifndef USE_GDBUS
+
static Eina_Bool widget_listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
{
if (NULL == g_w_conn_listener) return ECORE_CALLBACK_RENEW;
g_w_conn_sender = NULL;
}
}
-#endif
-
-#ifdef USE_GDBUS
-
-gboolean vcd_widget_method_hello(GDBusVcwidget *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int response = -1;
-
- if (pid > 0) {
- SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get hello : pid(%d) ", pid);
- response = 1;
- } else {
- SLOG(LOG_ERROR, TAG_VCW, "@@ vc widget get hello : invalid pid ");
- }
-
- gdbus_vcwidget_complete_vcd_widget_method_hello(service, invocation, response);
- return TRUE;
-}
-
-gboolean vcd_widget_method_show_tooltip(GDBusVcwidget *service, GDBusMethodInvocation *invocation,
- int pid, gboolean show, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget show tooltip : pid(%d), show(%d)", pid, show);
- __vc_widget_cb_show_tooltip(pid, show);
-
- gdbus_vcwidget_complete_vcd_widget_method_show_tooltip(service, invocation);
- return TRUE;
-}
-
-gboolean vcd_widget_method_result(GDBusVcwidget *service, GDBusMethodInvocation *invocation,
- int pid, gboolean show, gpointer user_data)
-{
- __vc_widget_cb_result();
-
- gdbus_vcwidget_complete_vcd_widget_method_result(service, invocation);
- return TRUE;
-}
-
-
-gboolean vcd_widget_method_asr_result(GDBusVcwidget *service, GDBusMethodInvocation *invocation,
- int event, const gchar* asr_result, gpointer user_data)
-{
- int ret = 0;
-
- if (false == __vc_widget_cb_asr_result(event, asr_result))
- ret = 0;
- else
- ret = 1;
-
- SLOG(LOG_DEBUG, TAG_VCW, "@@ vc widget get asr result, event(%d), asr_result(%s), consumed(%d)", event, asr_result, ret);
- gdbus_vcwidget_complete_vcd_widget_method_asr_result(service, invocation, ret);
- return TRUE;
-}
-
-static void
-on_name_acquired(GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCW, "Name acquired : %s", name);
-
- GDBusVcwidget *service;
- GError *error = NULL;
-
- service = gdbus_vcwidget_skeleton_new();
-
- /* vc daemon methods */
- g_signal_connect(service, "handle-vcd-widget-method-hello",
- G_CALLBACK(vcd_widget_method_hello), NULL);
- g_signal_connect(service, "handle-vcd-widget-method-result",
- G_CALLBACK(vcd_widget_method_result), NULL);
- g_signal_connect(service, "handle-vcd-widget-method-asr-result",
- G_CALLBACK(vcd_widget_method_asr_result), NULL);
- g_signal_connect(service, "handle-vcd-widget-method-show-tooltip",
- G_CALLBACK(vcd_widget_method_show_tooltip), NULL);
-
- g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(service),
- connection, VC_WIDGET_SERVICE_OBJECT_PATH, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCW, "Error : %s\n", error->message);
- g_error_free(error);
- }
-}
-#endif
int vc_widget_dbus_open_connection()
{
-#ifdef USE_GDBUS
- int pid = getpid();
-
- char service_name[64];
- memset(service_name, '\0', 64);
- snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
- g_own_name_id = g_bus_own_name(G_BUS_TYPE_SESSION,
- service_name, 0, NULL, on_name_acquired, NULL, NULL, NULL);
- SLOG(LOG_DEBUG, TAG_VCW, "service_name : %s, %d", service_name, g_own_name_id);
-
- GError *error = NULL;
- g_daemon_proxy = gdbus_vcdaemon_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- VC_DAEMON_SERVICE_NAME, VC_DAEMON_SERVICE_OBJECT_PATH, NULL, &error);
- if (error) {
- SLOG(LOG_DEBUG, TAG_VCW, "Error : %s", error->message);
- g_error_free(error);
- }
- return 0;
-#else
pthread_mutex_lock(&g_w_dbus_mutex);
if (NULL != g_w_conn_sender && NULL != g_w_conn_listener) {
SLOG(LOG_INFO, TAG_VCW, "[INFO] widget dbus connection is opened");
-return 0;
-#endif
+ return 0;
}
int vc_widget_dbus_close_connection()
{
-#ifdef USE_GDBUS
- if (g_daemon_proxy) {
- g_object_unref(g_daemon_proxy);
- g_daemon_proxy = NULL;
- }
- if (g_own_name_id) {
- g_bus_unown_name(g_own_name_id);
- g_own_name_id = 0;
- }
- return 0;
-#else
pthread_mutex_lock(&g_w_dbus_mutex);
DBusError err;
dbus_error_init(&err);
if (NULL != g_w_fd_handler) {
- ecore_main_fd_handler_del(g_w_fd_handler);
- g_w_fd_handler = NULL;
+ ecore_main_fd_handler_del(g_w_fd_handler);
+ g_w_fd_handler = NULL;
}
if (NULL != g_w_conn_listener) {
SLOG(LOG_INFO, TAG_VCW, "[INFO] widget dbus connection is closed");
return 0;
-#endif
}
int vc_widget_dbus_reconnect()
{
-#ifdef USE_GDBUS
- if (!g_own_name_id || !g_daemon_proxy) {
- vc_widget_dbus_close_connection();
-
- if (0 != vc_widget_dbus_open_connection()) {
- SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to reconnect"); //LCOV_EXCL_LINE
- return -1;
- }
-
- SLOG(LOG_DEBUG, TAG_VCC, "[DBUS] Reconnect"); //LCOV_EXCL_LINE
- }
- return 0;
-#else
if (!g_w_conn_sender || !g_w_conn_listener) {
vc_widget_dbus_close_connection();
}
return 0;
-#endif
}
static int __dbus_check()
{
-#ifdef USE_GDBUS
- SLOG(LOG_DEBUG, TAG_VCW, "%d %p", g_own_name_id, g_daemon_proxy); //LCOV_EXCL_LINE
- if (0 == g_own_name_id || NULL == g_daemon_proxy) {
- SLOG(LOG_ERROR, TAG_VCW, "[ERROR] NULL connection"); //LCOV_EXCL_LINE
- return vc_widget_dbus_reconnect();
- }
- return 0;
-#else
if (NULL == g_w_conn_sender || NULL == g_w_conn_listener) {
SLOG(LOG_ERROR, TAG_VCW, "[ERROR] NULL connection");
return vc_widget_dbus_reconnect();
}
return 0;
-#endif
-}
-
-static GDBusVcmanager* get_manager_proxy() {
- char service_name[64] = {0,};
- char object_path[64] = {0,};
-
- snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
- snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-
- GError *error = NULL;
- GDBusVcmanager *proxy = gdbus_vcmanager_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- service_name, object_path, NULL, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCC, "[DBUS] Proxy : %p, service_name(%s), object_path(%s) : %s",
- proxy, service_name, object_path, error->message);
- g_error_free(error);
- }
-
- return proxy;
}
int vc_widget_dbus_request_hello()
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result = 0;
- if (!gdbus_vcdaemon_call_vc_method_hello_sync(g_daemon_proxy, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCW, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
int vc_widget_dbus_request_initialize(int pid, int* service_state, int* daemon_pid)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_initialize_sync(g_daemon_proxy,
- pid, &result, service_state, daemon_pid, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
pthread_mutex_lock(&g_w_init_mutex);
if (0 != __dbus_check()) {
pthread_mutex_unlock(&g_w_init_mutex);
pthread_mutex_unlock(&g_w_init_mutex);
return result;
-#endif
}
int vc_widget_dbus_request_finalize(int pid)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_finalize_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
pthread_mutex_lock(&g_w_init_mutex);
if (0 != __dbus_check()) {
pthread_mutex_unlock(&g_w_init_mutex);
pthread_mutex_unlock(&g_w_init_mutex);
return result;
-#endif
}
int vc_widget_dbus_request_start_recording(int pid, bool command)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_start_recording_sync(g_daemon_proxy,
- pid, command, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
msg = dbus_message_new_method_call(
}
return result;
-#endif
}
int vc_widget_dbus_set_foreground(int pid, bool value)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- /* To Manager */
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcw_manager_method_set_foreground(proxy,
- pid, value, NULL, NULL, NULL);
- if (proxy) g_object_unref(proxy);
- return 0;
-#else
+
DBusMessage* msg = NULL;
int tmp_value = 0;
dbus_message_unref(msg);
return 0;
-#endif
}
int vc_widget_dbus_request_enable_asr_result(int pid, bool enable)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_start_recording_sync(g_daemon_proxy,
- pid, enable, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
/* create a signal & check for errors */
}
return result;
-#endif
}
int vc_widget_dbus_request_start(int pid, int silence)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_start_sync(g_daemon_proxy,
- pid, silence, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
/* create a signal & check for errors */
}
return result;
-#endif
}
int vc_widget_dbus_request_stop(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_stop_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
/* create a signal & check for errors */
}
return result;
-#endif
}
int vc_widget_dbus_request_cancel(int pid)
if (0 != __dbus_check()) {
return VC_ERROR_OPERATION_FAILED;
}
-#ifdef USE_GDBUS
- GError *error = NULL;
- int result;
- if (!gdbus_vcdaemon_call_vcw_daemon_method_cancel_sync(g_daemon_proxy,
- pid, &result, NULL, &error)) {
- if (error) {
- SLOG(LOG_ERROR, TAG_VCW, "Error : %s", error->message);
- result = VC_ERROR_OPERATION_FAILED;
- g_error_free(error);
- } else {
- SLOG(LOG_ERROR, TAG_VCC, "Failed without explicit error");
- }
- }
- return result;
-#else
+
DBusMessage* msg;
/* create a signal & check for errors */
}
return result;
-#endif
}
*******************************************************************************************/
#define VC_CLIENT_SERVICE_NAME "org.tizen.voice.vcclient"
-#define VC_CLIENT_SERVICE_OBJECT_PATH "/org/tizen/voice/vcclient"
+#define VC_CLIENT_SERVICE_OBJECT_PATH "/org/tize/voice/vcclient"
#define VC_CLIENT_SERVICE_INTERFACE "org.tizen.voice.vcclient"
#define VC_WIDGET_SERVICE_NAME "org.tizen.voice.vcwidget"
#define VC_WIDGET_SERVICE_INTERFACE "org.tizen.voice.vcwidget"
#define VC_MANAGER_SERVICE_NAME "org.tizen.voice.vcmanager"
-#define VC_MANAGER_SERVICE_OBJECT_PATH "/org/tizen/voice/vcmanager"
+#define VC_MANAGER_SERVICE_OBJECT_PATH "/org/tize/voice/vcmanager"
#define VC_MANAGER_SERVICE_INTERFACE "org.tizen.voice.vcmanager"
-#define VC_DAEMON_SERVICE_NAME "org.tizen.voice.vcdaemon"
-#define VC_DAEMON_SERVICE_OBJECT_PATH "/org/tizen/voice/vcdaemon"
-#define VC_DAEMON_SERVICE_INTERFACE "org.tizen.voice.vcdaemon"
+#define VC_SERVER_SERVICE_NAME "org.tizen.voice.vcserver"
+#define VC_SERVER_SERVICE_OBJECT_PATH "/org/tizen/voice/vcserver"
+#define VC_SERVER_SERVICE_INTERFACE "org.tizen.voice.vcserver"
#define VC_SETTING_SERVICE_NAME "org.tizen.voice.vcsetting"
-#define VC_SETTING_SERVICE_OBJECT_PATH "/org/tizen/voice/vcsetting"
+#define VC_SETTING_SERVICE_OBJECT_PATH "/org/tize/voice/vcsetting"
#define VC_SETTING_SERVICE_INTERFACE "org.tizen.voice.vcsetting"
/******************************************************************************************
[D-BUS Service]
-Name=org.tizen.voice.vcdaemon
+Name=org.tizen.voice.vcserver
#Exec=/usr/bin/vc-daemon
#Exec=/bin/sh -c "launch_app org.tizen.vc-engine-default"
Exec=/bin/sh -c "vc_getengine get system db/voice/vc/engine/default | awk '{print$5}' | xargs -t -i launch_app {}"
[D-BUS Service]
-Name=org.tizen.voice.vcdaemon
+Name=org.tizen.voice.vcserver
#Exec=/usr/bin/vc-daemon
Exec=/bin/sh -c "launch_app org.tizen.voice-client"
+++ /dev/null
-<node>
- <interface name="org.tizen.voice.vcdaemon">
- <!-- vc common signals //-->
- <signal name="vcd_signal_set_service_state">
- <arg name="state" direction="in" type="i"/>
- </signal>
- <!-- vc common methods //-->
- <method name="vc_method_hello">
- </method>
- <!-- vc client signals //-->
- <signal name="vcd_client_signal_send_error">
- <arg name="reason" direction="in" type="i"/>
- <arg name="daemon_pid" direction="in" type="i"/>
- <arg name="err_msg" direction="in" type="s"/>
- </signal>
- <signal name="vcd_client_signal_send_manager_pid">
- <arg name="manager_pid" direction="in" type="i"/>
- </signal>
- <!-- vc client methods //-->
- <method name="vcc_daemon_method_initialize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="mgr_pid" direction="out" type="i"/>
- <arg name="service_state" direction="out" type="i"/>
- <arg name="daemon_pid" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_finalize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_set_exclusive_cmd">
- <arg name="pid" direction="in" type="i"/>
- <arg name="value" direction="in" type="b"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_set_command">
- <arg name="pid" direction="in" type="i"/>
- <arg name="cmd_type" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_unset_command">
- <arg name="pid" direction="in" type="i"/>
- <arg name="cmd_type" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_set_foreground">
- <arg name="pid" direction="in" type="i"/>
- <arg name="value" direction="in" type="b"/>
- </method>
- <method name="vcc_daemon_method_set_server_dialog">
- <arg name="pid" direction="in" type="i"/>
- <arg name="app_id" direction="in" type="s"/>
- <arg name="credential" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_dialog">
- <arg name="pid" direction="in" type="i"/>
- <arg name="disp_text" direction="in" type="s"/>
- <arg name="utt_text" direction="in" type="s"/>
- <arg name="continuous" direction="in" type="b"/>
- </method>
- <method name="vcc_daemon_method_is_system_command_valid">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="sys_cmd" direction="out" type="b"/>
- </method>
- <method name="vcc_daemon_method_request_tts">
- <arg name="pid" direction="in" type="i"/>
- <arg name="text" direction="in" type="s"/>
- <arg name="language" direction="in" type="s"/>
- <arg name="to_vcm" direction="in" type="b"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="utt_id" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_cancel_tts">
- <arg name="pid" direction="in" type="i"/>
- <arg name="utt_id" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcc_daemon_method_get_tts_audio_format">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="rate" direction="out" type="i"/>
- <arg name="channel" direction="out" type="i"/>
- <arg name="audio_type" direction="out" type="i"/>
- </method>
- <!-- vc widget signals //-->
- <signal name="vcd_widget_signal_send_error">
- <arg name="reason" direction="in" type="i"/>
- <arg name="daemon_pid" direction="in" type="i"/>
- <arg name="err_msg" direction="in" type="s"/>
- </signal>
- <!-- vc widget methods //-->
- <method name="vcw_daemon_method_initialize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="service_state" direction="out" type="i"/>
- <arg name="daemon_pid" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_finalize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_start_recording">
- <arg name="pid" direction="in" type="i"/>
- <arg name="widget_command" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_enable_asr_result">
- <arg name="pid" direction="in" type="i"/>
- <arg name="enabel" direction="in" type="b"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_start">
- <arg name="pid" direction="in" type="i"/>
- <arg name="silence" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_stop">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_cancel">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcw_daemon_method_set_foreground">
- <arg name="pid" direction="in" type="i"/>
- <arg name="value" direction="in" type="b"/>
- </method>
- <!-- vc manager signals //-->
- <signal name="vcd_manager_signal_send_error">
- <arg name="reason" direction="in" type="i"/>
- <arg name="daemon_pid" direction="in" type="i"/>
- <arg name="err_msg" direction="in" type="s"/>
- </signal>
- <!-- vc manager methods //-->
- <method name="vcm_daemon_method_initialize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="audio_streaming_mode" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="service_state" direction="out" type="i"/>
- <arg name="foreground" direction="out" type="i"/>
- <arg name="daemon_pid" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_finalize">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_set_command">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_unset_command">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_set_demandable_client">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_set_audio_type">
- <arg name="pid" direction="in" type="i"/>
- <arg name="audio_type" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_get_audio_type">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="audio_type" direction="out" type="s"/>
- </method>
- <method name="vcm_daemon_method_set_client_info">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_set_private_data">
- <arg name="pid" direction="in" type="i"/>
- <arg name="key" direction="in" type="s"/>
- <arg name="data" direction="in" type="s"/>
- </method>
- <method name="vcm_daemon_method_get_private_data">
- <arg name="pid" direction="in" type="i"/>
- <arg name="key" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="data" direction="out" type="s"/>
- </method>
- <method name="vcm_daemon_method_enable_command_type">
- <arg name="pid" direction="in" type="i"/>
- <arg name="cmd_type" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_disable_command_type">
- <arg name="pid" direction="in" type="i"/>
- <arg name="cmd_type" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_request_start">
- <arg name="pid" direction="in" type="i"/>
- <arg name="recognition_mode" direction="in" type="i"/>
- <arg name="exclusive_command_option" direction="in" type="b"/>
- <arg name="start_by_client" direction="in" type="b"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_request_stop">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_request_cancel">
- <arg name="pid" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_result_selection">
- <arg name="pid" direction="in" type="i"/>
- </method>
- <method name="vcm_daemon_method_set_domain">
- <arg name="pid" direction="in" type="i"/>
- <arg name="key" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcm_daemon_method_do_action">
- <arg name="pid" direction="in" type="i"/>
- <arg name="type" direction="in" type="i"/>
- <arg name="send_event" direction="in" type="s"/>
- </method>
- <method name="vcm_daemon_method_specific_engine_request">
- <arg name="pid" direction="in" type="i"/>
- <arg name="engine_app_id" direction="in" type="s"/>
- <arg name="event" direction="in" type="s"/>
- <arg name="request" direction="in" type="s"/>
- </method>
- <method name="vcm_daemon_method_send_audio_streaming">
- <arg name="pid" direction="in" type="i"/>
- <arg name="event" direction="in" type="i"/>
- <arg name="size" direction="in" type="u"/>
- <arg name="buffer" direction="in" type="ay">
- <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
- </arg>
- </method>
- <method name="vcm_daemon_method_change_system_volume">
- <arg name="pid" direction="in" type="i"/>
- <arg name="volume_event" direction="in" type="i"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <!-- vc setting methods //-->
- <method name="vcs_daemon_method_set_language">
- <arg name="pid" direction="in" type="i"/>
- <arg name="language" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- </interface>
- <interface name="org.tizen.voice.vcclient">
- <!-- vc daemon methods //-->
- <method name="vcd_client_method_hello">
- <arg name="pid" direction="in" type="i"/>
- <arg name="response" direction="out" type="i"/>
- </method>
- <method name="vcd_client_method_result">
- </method>
- <method name="vcd_client_method_feedback_streaming">
- <arg name="utt_id" direction="in" type="i"/>
- <arg name="event" direction="in" type="i"/>
- <arg name="size" direction="in" type="u"/>
- <arg name="buffer" direction="in" type="ay">
- <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
- </arg>
- </method>
- <!-- vc manager methods //-->
- <method name="vcm_client_method_utterance_status">
- <arg name="utt_id" direction="in" type="i"/>
- <arg name="utt_status" direction="in" type="i"/>
- </method>
- </interface>
- <interface name="org.tizen.voice.vcsetting">
- </interface>
- <interface name="org.tizen.voice.vcmanager">
- <!-- vc client methods //-->
- <method name="vcc_manager_method_set_foreground">
- <arg name="pid" direction="in" type="i"/>
- <arg name="value" direction="in" type="b"/>
- </method>
- <!-- vc daemon methods //-->
- <method name="vcd_manager_method_hello">
- <arg name="pid" direction="in" type="i"/>
- <arg name="response" direction="out" type="i"/>
- </method>
- <method name="vcd_manager_method_speech_detected">
- </method>
- <method name="vcd_manager_method_all_result">
- <arg name="result_type" direction="in" type="i"/>
- </method>
- <method name="vcd_manager_method_pre_result">
- <arg name="event" direction="in" type="i"/>
- <arg name="pre_result" direction="in" type="s"/>
- </method>
- <method name="vcd_manager_method_result">
- </method>
- <method name="vcd_manager_method_set_volume">
- <arg name="volume" direction="in" type="i"/>
- </method>
- <method name="vcd_manager_method_dialog">
- <arg name="pid" direction="in" type="i"/>
- <arg name="disp_text" direction="in" type="s"/>
- <arg name="utt_text" direction="in" type="s"/>
- <arg name="continuous" direction="in" type="b"/>
- </method>
- <method name="vcd_manager_method_set_private_data">
- <arg name="pid" direction="in" type="i"/>
- <arg name="key" direction="in" type="s"/>
- <arg name="data" direction="in" type="s"/>
- </method>
- <method name="vcd_manager_method_get_private_data">
- <arg name="pid" direction="in" type="i"/>
- <arg name="key" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- <arg name="value" direction="out" type="s"/>
- </method>
- <method name="vcd_manager_method_specific_engine_result">
- <arg name="engine_app_id" direction="in" type="s"/>
- <arg name="event" direction="in" type="s"/>
- <arg name="result" direction="in" type="s"/>
- </method>
- <method name="vcd_manager_method_feedback_audio_format">
- <arg name="rate" direction="in" type="i"/>
- <arg name="channel" direction="in" type="i"/>
- <arg name="audio_type" direction="in" type="i"/>
- </method>
- <method name="vcd_manager_method_feedback_streaming">
- <arg name="pid" direction="in" type="i"/>
- <arg name="utt_id" direction="in" type="i"/>
- <arg name="event" direction="in" type="i"/>
- <arg name="size" direction="in" type="u"/>
- <arg name="buffer" direction="in" type="ay">
- <annotation name="org.gtk.GDBus.C.ForceGVariant" value="true"/>
- </arg>
- </method>
- <!-- vc widget methods //-->
- <method name="vcw_manager_method_set_foreground">
- <arg name="pid" direction="in" type="i"/>
- <arg name="value" direction="in" type="b"/>
- </method>
- </interface>
- <interface name="org.tizen.voice.vcwidget">
- <!-- vc daemon methods //-->
- <method name="vcd_widget_method_result">
- </method>
- <method name="vcd_widget_method_asr_result">
- <arg name="event" direction="in" type="i"/>
- <arg name="asr_result" direction="in" type="s"/>
- <arg name="result" direction="out" type="i"/>
- </method>
- <method name="vcd_widget_method_hello">
- <arg name="pid" direction="in" type="i"/>
- <arg name="response" direction="out" type="i"/>
- </method>
- <method name="vcd_widget_method_show_tooltip">
- <arg name="pid" direction="in" type="i"/>
- <arg name="show" direction="in" type="b"/>
- </method>
- </interface>
-</node>
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(pkgmgr-installer)
-BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(gio-unix-2.0)
%if "%{tizen_profile_name}" == "tv"
BuildRequires: pkgconfig(capi-network-bluetooth)
BuildRequires: pkgconfig(capi-network-bluetooth-tv)
rm -rf %{buildroot}
%if "%{tizen_profile_name}" == "tv"
-mv -f org.tizen.voice.vcdaemon.tv.service org.tizen.voice.vcdaemon.service
+mv -f org.tizen.voice.vcserver.tv.service org.tizen.voice.vcserver.service
%endif
%make_install
%{TZ_SYS_RO_SHARE}/dbus-1/services/org.tizen.voice*
%{TZ_SYS_RO_SHARE}/parser-plugins/voice-control.info
%{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libvc-engine-parser.so*
-/etc/dbus-1/session.d/vc-service.conf
+/etc/dbus-1/session.d/vc-server.conf
%files devel
%manifest %{name}-devel.manifest
../common/vc_config_parser.c
../common/vc_info_parser.c
../common/vc_json_parser.c
- ../common/vc_gdbus.c
vcd_client_data.c
vcd_server_data.cpp
vcd_config.c
#include "vcd_dbus_server.h"
#include "vcd_main.h"
-#define USE_GDBUS
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
-static GDBusVcdaemon *g_daemon = NULL;
-static int g_own_name_id = 0;
-#else
-static Ecore_Fd_Handler* g_dbus_fd_handler = NULL;
static DBusConnection* g_conn_sender = NULL;
static DBusConnection* g_conn_listener = NULL;
-static int g_waiting_time = 3000;
+static Ecore_Fd_Handler* g_dbus_fd_handler = NULL;
-#endif
+static int g_waiting_time = 3000;
static int g_volume_count = 0;
-#ifdef USE_GDBUS
-static GDBusVcmanager* get_manager_proxy() {
- char service_name[64] = {0,};
- char object_path[64] = {0,};
-
- snprintf(service_name, 64, "%s", VC_MANAGER_SERVICE_NAME);
- snprintf(object_path, 64, "%s", VC_MANAGER_SERVICE_OBJECT_PATH);
-
- GError *error = NULL;
- GDBusVcmanager *proxy = gdbus_vcmanager_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- service_name, object_path, NULL, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "[DBUS] Proxy : %p, service_name(%s), object_path(%s) : %s",
- proxy, service_name, object_path, error->message);
- g_error_free(error);
- }
-
- return proxy;
-}
-
-static GDBusVcclient* get_client_proxy(int pid) {
- char service_name[64] = {0,};
- char object_path[64] = {0,};
-
- snprintf(service_name, 64, "%s%d", VC_CLIENT_SERVICE_NAME, pid);
- snprintf(object_path, 64, "%s", VC_CLIENT_SERVICE_OBJECT_PATH);
-
- GError *error = NULL;
- GDBusVcclient *proxy = gdbus_vcclient_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- service_name, object_path, NULL, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "[DBUS] Proxy : %p, service_name(%s), object_path(%s) : %s",
- proxy, service_name, object_path, error->message);
- g_error_free(error);
- }
-
- return proxy;
-}
-
-static GDBusVcwidget* get_widget_proxy(int pid) {
- char service_name[64] = {0,};
- char object_path[64] = {0,};
-
- snprintf(service_name, 64, "%s%d", VC_WIDGET_SERVICE_NAME, pid);
- snprintf(object_path, 64, "%s", VC_WIDGET_SERVICE_OBJECT_PATH);
-
- GError *error = NULL;
- GDBusVcwidget *proxy = gdbus_vcwidget_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION, 0,
- service_name, object_path, NULL, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "[DBUS] Proxy : %p, service_name(%s), object_path(%s) : %s",
- proxy, service_name, object_path, error->message);
- g_error_free(error);
- }
- return proxy;
-}
-#else
static DBusMessage* __get_message(int pid, const char* method, vcd_client_type_e type)
{
char service_name[64] = {0,};
return result;
}
-#endif
int vcdc_send_show_tooltip(int pid, bool show)
{
-#ifdef USE_GDBUS
- GDBusVcwidget* proxy = get_widget_proxy(pid);
- gdbus_vcwidget_call_vcd_widget_method_show_tooltip(proxy,
- pid, show, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_set_volume(int manger_pid, float volume)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_set_volume(proxy,
- volume, NULL, NULL, NULL);
- g_object_unref(proxy);
-
- if (10 == g_volume_count) {
- SLOG(LOG_DEBUG, TAG_VCD, "@@ Send set volume : pid(%d), volume(%f)", manger_pid, volume);
- g_volume_count = 0;
- }
- g_volume_count++;
-
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_result(int pid, int manager_pid, int cmd_type)
{
-#ifdef USE_GDBUS
- SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] Result command type(%d)", cmd_type);
-
- switch (cmd_type) {
- case VC_COMMAND_TYPE_FOREGROUND:
- case VC_COMMAND_TYPE_BACKGROUND:
- if (pid == manager_pid) {
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_result(proxy, NULL, NULL, NULL);
- g_object_unref(proxy);
- } else {
- GDBusVcclient* proxy = get_client_proxy(pid);
- gdbus_vcclient_call_vcd_client_method_result(proxy, NULL, NULL, NULL);
- g_object_unref(proxy);
- }
- break;
- case VC_COMMAND_TYPE_WIDGET: {
- GDBusVcwidget* proxy = get_widget_proxy(pid);
- gdbus_vcwidget_call_vcd_widget_method_result(proxy, NULL, NULL, NULL);
- g_object_unref(proxy);
- }
- break;
- case VC_COMMAND_TYPE_SYSTEM:
- case VC_COMMAND_TYPE_SYSTEM_BACKGROUND:
- case VC_COMMAND_TYPE_EXCLUSIVE: {
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_result(proxy, NULL, NULL, NULL);
- g_object_unref(proxy);
- }
- break;
-
- default:
- SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Command type is NOT valid(%d)", cmd_type);
- return -1;
- }
-
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_asr_result(int pid, int event, const char* asr_result, int cmd_type, bool* is_consumed)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- gint result = 0;
- GDBusVcwidget* proxy = get_widget_proxy(pid);
- gdbus_vcwidget_call_vcd_widget_method_asr_result_sync(proxy,
- event, asr_result, &result, NULL, &error);
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Dbus Error (%s)", error->message);
- g_error_free(error);
- }
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
SLOG(LOG_ERROR, TAG_VCD, "@@ Result message is NULL ");
return VCD_ERROR_OPERATION_FAILED;
}
-#endif
}
int vcdc_send_pre_result_to_manager(int manager_pid, int event, const char* pre_result)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_pre_result(proxy,
- event, pre_result, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
}
return 0;
-#endif
}
int vcdc_send_specific_engine_result_to_manager(int manager_pid, const char* engine_app_id, const char* event, const char* result)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_specific_engine_result(proxy,
- engine_app_id, event, result, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
SLOG(LOG_DEBUG, TAG_VCD, "[VCDC] send specific engine result to manager, mgr pid(%d), engine app id(%s), event(%s), result(%s),",
manager_pid, engine_app_id, event, result);
}
return 0;
-#endif
}
int vcdc_send_result_to_manager(int manger_pid, int result_type)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- SLOG(LOG_DEBUG, TAG_VCD, "[Dbus] send result : result type(%d)", result_type);
- gdbus_vcmanager_call_vcd_manager_method_all_result(proxy,
- result_type, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_speech_detected(int manger_pid)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_speech_detected(proxy,
- NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_service_state(vcd_state_e state)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_emit_vcd_signal_set_service_state(g_daemon, state);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_manager_pid(int manager_pid)
{
-#ifdef USE_GDBUS
- gdbus_vcdaemon_emit_vcd_client_signal_send_manager_pid(g_daemon, manager_pid);
-#else
DBusError err;
dbus_error_init(&err);
}
dbus_message_unref(msg);
-#endif
+
return 0;
}
int vcdc_send_dialog(int manger_pid, int pid, const char* disp_text, const char* utt_text, int continuous)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_dialog(proxy,
- pid, disp_text, utt_text, continuous, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
}
return ret;
-#endif
}
int vcdc_send_error_signal_to_manager(int manager_pid, int reason, char *err_msg)
{
-#ifdef USE_GDBUS
- int daemon_pid = getpid();
- gdbus_vcdaemon_emit_vcd_manager_signal_send_error(g_daemon, reason, daemon_pid, err_msg);
- return 0;
-#else
SLOG(LOG_ERROR, TAG_VCD, "@@ Send error signal to manager");
if (0 != __dbus_check()) {
}
return 0;
-#endif
}
int vcdc_send_error_signal(int reason, char *err_msg)
{
-#ifdef USE_GDBUS
- int daemon_pid = getpid();
- gdbus_vcdaemon_emit_vcd_client_signal_send_error(g_daemon, reason, daemon_pid, err_msg);
- gdbus_vcdaemon_emit_vcd_manager_signal_send_error(g_daemon, reason, daemon_pid, err_msg);
- gdbus_vcdaemon_emit_vcd_widget_signal_send_error(g_daemon, reason, daemon_pid, err_msg);
- return 0;
-#else
SLOG(LOG_ERROR, TAG_VCD, "@@ Send error signal");
if (NULL == err_msg) {
dbus_message_unref(msg);
return 0;
-#endif
}
int vcdc_send_request_set_private_data(int pid, const char* key, const char* data)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_set_private_data(proxy,
- pid, key, data, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
dbus_message_unref(msg);
return VCD_ERROR_NONE;
-#endif
}
int vcdc_send_request_get_private_data(int pid, const char* key, char** data)
{
-#ifdef USE_GDBUS
- GError *error = NULL;
- gint result = 0;
- gchar* value = NULL;
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_get_private_data_sync(proxy,
- pid, key, &result, &value, NULL, &error);
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Dbus Error (%s)", error->message);
- g_error_free(error);
- }
- if (NULL != data && NULL != value) {
- *data = strdup(value);
- }
- g_object_unref(proxy);
- return 0;
-#else
if (0 != __dbus_check()) {
return VCD_ERROR_OPERATION_FAILED;
}
}
return result;
-#endif
}
int vcdc_send_feedback_audio_format_to_manager(int manager_pid, int rate, vc_audio_channel_e channel, vce_audio_type_e audio_type)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- gdbus_vcmanager_call_vcd_manager_method_feedback_audio_format(proxy,
- rate, channel, audio_type, NULL, NULL, NULL);
- g_object_unref(proxy);
- return 0;
-#else
SLOG(LOG_INFO, TAG_VCD, "[Dbus] Send TTS feedback audio format : manager_pid(%d), rate(%d), audio channel(%d), audio type(%d)", manager_pid, rate, channel, audio_type);
if (0 != __dbus_check()) {
dbus_message_unref(msg);
return ret;
-#endif
}
int vcdc_send_feedback_streaming_to_manager(int manager_pid, int pid, int utt_id, vc_feedback_event_e event, char* buffer, int len)
{
-#ifdef USE_GDBUS
- GDBusVcmanager* proxy = get_manager_proxy();
- GVariant *variant = g_variant_new_from_data(G_VARIANT_TYPE ("ay"),
- buffer, len, TRUE, NULL, NULL);
-
- gdbus_vcmanager_call_vcd_manager_method_feedback_streaming(proxy,
- pid, utt_id, event, len, variant, NULL, NULL, NULL);
-
- g_object_unref(proxy);
- g_variant_ref(variant);
- return 0;
-#else
SLOG(LOG_INFO, TAG_VCD, "[Dbus] Send TTS feedback streaming : manager_pid(%d), pid(%d), utt_id(%d) feedback event(%d), buffer(%p), length(%d)", manager_pid, pid, utt_id, event, buffer, len);
if (0 != __dbus_check()) {
dbus_message_unref(msg);
return ret;
-#endif
}
int vcdc_send_feedback_streaming(int pid, int utt_id, vc_feedback_event_e event, char* buffer, int len)
{
-#ifdef USE_GDBUS
- GDBusVcclient* proxy = get_client_proxy(pid);
- GVariant *variant = g_variant_new_from_data(G_VARIANT_TYPE ("ay"),
- buffer, len, TRUE, NULL, NULL);
-
- gdbus_vcclient_call_vcd_client_method_feedback_streaming(proxy,
- utt_id, event, len, variant, NULL, NULL, NULL);
-
- g_object_unref(proxy);
- g_variant_ref(variant);
- return 0;
-#else
SLOG(LOG_INFO, TAG_VCD, "[Dbus] Send TTS feedback streaming : pid(%d), utt_id(%d), feedback event(%d), buffer(%p), length(%d)", pid, utt_id, event, buffer, len);
if (0 != __dbus_check()) {
dbus_message_unref(msg);
return ret;
-#endif
}
-#ifndef USE_GDBUS
static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handler)
{
if (NULL == g_conn_listener) return ECORE_CALLBACK_RENEW;
g_conn_sender = NULL;
}
}
-#endif
-
-#ifdef USE_GDBUS
-static void
-on_name_acquired(GDBusConnection *connection, const gchar *name, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "Name acquired : %s", name);
-
- GError *error = NULL;
-
- g_daemon = gdbus_vcdaemon_skeleton_new();
-
- /* vc common methods */
- g_signal_connect(g_daemon, "handle-vc-method-hello",
- G_CALLBACK(vc_method_hello), NULL);
-
- /* vc client methods */
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-initialize",
- G_CALLBACK(vcc_daemon_method_initialize), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-finalize",
- G_CALLBACK(vcc_daemon_method_finalize), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-set-exclusive-cmd",
- G_CALLBACK(vcc_daemon_method_set_exclusive_cmd), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-set-command",
- G_CALLBACK(vcc_daemon_method_set_command), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-unset-command",
- G_CALLBACK(vcc_daemon_method_unset_command), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-set-foreground",
- G_CALLBACK(vcc_daemon_method_set_foreground), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-set-server-dialog",
- G_CALLBACK(vcc_daemon_method_set_server_dialog), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-dialog",
- G_CALLBACK(vcc_daemon_method_dialog), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-is-system-command-valid",
- G_CALLBACK(vcc_daemon_method_is_system_command_valid), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-request-tts",
- G_CALLBACK(vcc_daemon_method_request_tts), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-cancel-tts",
- G_CALLBACK(vcc_daemon_method_cancel_tts), NULL);
- g_signal_connect(g_daemon, "handle-vcc-daemon-method-get-tts-audio-format",
- G_CALLBACK(vcc_daemon_method_get_tts_audio_format), NULL);
-
- /* vc widget methods */
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-initialize",
- G_CALLBACK(vcw_daemon_method_initialize), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-finalize",
- G_CALLBACK(vcw_daemon_method_finalize), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-start-recording",
- G_CALLBACK(vcw_daemon_method_start_recording), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-enable-asr-result",
- G_CALLBACK(vcw_daemon_method_enable_asr_result), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-start",
- G_CALLBACK(vcw_daemon_method_start), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-stop",
- G_CALLBACK(vcw_daemon_method_stop), NULL);
- g_signal_connect(g_daemon, "handle-vcw-daemon-method-cancel",
- G_CALLBACK(vcw_daemon_method_cancel), NULL);
-
- /* vc manager methods */
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-initialize",
- G_CALLBACK(vcm_daemon_method_initialize), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-finalize",
- G_CALLBACK(vcm_daemon_method_finalize), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-command",
- G_CALLBACK(vcm_daemon_method_set_command), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-unset-command",
- G_CALLBACK(vcm_daemon_method_unset_command), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-demandable-client",
- G_CALLBACK(vcm_daemon_method_set_demandable_client), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-audio-type",
- G_CALLBACK(vcm_daemon_method_set_audio_type), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-get-audio-type",
- G_CALLBACK(vcm_daemon_method_get_audio_type), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-client-info",
- G_CALLBACK(vcm_daemon_method_set_client_info), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-private-data",
- G_CALLBACK(vcm_daemon_method_set_private_data), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-get-private-data",
- G_CALLBACK(vcm_daemon_method_get_private_data), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-enable-command-type",
- G_CALLBACK(vcm_daemon_method_enable_command_type), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-disable-command-type",
- G_CALLBACK(vcm_daemon_method_disable_command_type), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-request-start",
- G_CALLBACK(vcm_daemon_method_request_start), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-request-stop",
- G_CALLBACK(vcm_daemon_method_request_stop), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-request-cancel",
- G_CALLBACK(vcm_daemon_method_request_cancel), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-result-selection",
- G_CALLBACK(vcm_daemon_method_result_selection), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-set-domain",
- G_CALLBACK(vcm_daemon_method_set_domain), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-do-action",
- G_CALLBACK(vcm_daemon_method_do_action), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-specific-engine-request",
- G_CALLBACK(vcm_daemon_method_specific_engine_request), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-send-audio-streaming",
- G_CALLBACK(vcm_daemon_method_send_audio_streaming), NULL);
- g_signal_connect(g_daemon, "handle-vcm-daemon-method-change-system-volume",
- G_CALLBACK(vcm_daemon_method_change_system_volume), NULL);
-
- /* vc setting methods */
- g_signal_connect(g_daemon, "handle-vcs-daemon-method-set-language",
- G_CALLBACK(vcs_daemon_method_set_language), NULL);
-
- g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(g_daemon),
- connection, VC_DAEMON_SERVICE_OBJECT_PATH, &error);
-
- if (error) {
- SLOG(LOG_ERROR, TAG_VCD, "Exporting interface error : %s", error->message);
- g_error_free(error);
- }
-}
-#endif
int vcd_dbus_open_connection()
{
-#ifdef USE_GDBUS
- g_own_name_id = g_bus_own_name(G_BUS_TYPE_SESSION,
- VC_DAEMON_SERVICE_NAME, G_BUS_NAME_OWNER_FLAGS_REPLACE, NULL, on_name_acquired, NULL, NULL, NULL);
- SLOG(LOG_DEBUG, TAG_VCD, "g_bus_own_name returned %d", g_own_name_id);
-#else
DBusError err;
dbus_error_init(&err);
}
SLOG(LOG_INFO, TAG_VCD, "[INFO] Success to open dbus connection");
-#endif
+
return 0;
}
int vcd_dbus_close_connection()
{
-#ifdef USE_GDBUS
- if (g_daemon) {
- g_object_unref(g_daemon);
- g_daemon = NULL;
- }
- if (g_own_name_id) {
- g_bus_unown_name(g_own_name_id);
- g_own_name_id = 0;
- }
-#else
DBusError err;
dbus_error_init(&err);
}
__vcd_dbus_connection_free();
-#endif
return 0;
}
#include "vcd_server.h"
#include "vcd_config.h"
-#define USE_GDBUS
-
-#ifdef USE_GDBUS
-gboolean vc_method_hello(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[ENTER]");
- gdbus_vcdaemon_complete_vc_method_hello(service, invocation);
- return TRUE;
-}
-
-gboolean vcc_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_initialize(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to initialize");
- }
-
- int service_state = vcd_server_get_service_state();
- int daemon_pid = getpid();
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd initialize : pid(%d) daemon_pid(%d)", pid, daemon_pid);
-
- int mgr_pid = vcd_client_manager_get_pid();
-
- if (0 == ret) {
- SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d)", ret);
- } else {
- SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
- }
-
- gdbus_vcdaemon_complete_vcc_daemon_method_initialize(service, invocation,
- ret, mgr_pid, service_state, daemon_pid);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_finalize(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to finalize");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd finalize : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_finalize(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_set_exclusive_cmd(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data)
-{
- /*
- int ret = vcd_server_set_exclusive_command(pid, value);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_exclusive_cmd");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set_exclusive_cmd : pid(%d), exclusive(%d)", pid, value);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_set_exclusive_cmd(service, invocation, ret);
- */
- return TRUE;
-}
-
-gboolean vcc_daemon_method_set_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data)
-{
- int ret = vcd_server_set_command(pid, (vc_cmd_type_e)cmd_type);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_command");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set_command : pid(%d), cmd_type(%d)", pid, cmd_type);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_set_command(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_unset_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data)
-{
- int ret = vcd_server_unset_command(pid, (vc_cmd_type_e)cmd_type);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to unset_command");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd unset_command : pid(%d), cmd_type(%d)", pid, cmd_type);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_unset_command(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_set_foreground(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data)
-{
- int ret = vcd_server_set_foreground(pid, value);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_foreground");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set_foreground : pid(%d), value(%d)", pid, value);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_set_foreground(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_set_server_dialog(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* app_id, const gchar* credential, gpointer user_data)
-{
- int ret = vcd_server_set_server_dialog(pid, app_id, credential);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_server_dialog");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set_server_dialog : pid(%d), app_id(%s)", pid, app_id);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_set_server_dialog(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_dialog(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* disp_text, const gchar* utt_text, gboolean continuous, gpointer user_data)
-{
- int ret = vcd_server_dialog(pid, disp_text, utt_text, continuous);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to dialog");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd dialog : pid(%d), disp_text(%s), utt_text(%s)", pid, disp_text, utt_text);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_dialog(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_is_system_command_valid(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int is_sys_cmd_valid;
- int ret = vcd_server_is_system_command_valid(pid, &is_sys_cmd_valid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to is_system_command_valid");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd is_system_command_valid : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcc_daemon_method_is_system_command_valid(service, invocation,
- ret, is_sys_cmd_valid);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_request_tts(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* text, const gchar* language, gboolean to_vcm, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd request tts : pid(%d), text(%s), language(%s), to_vcm(%d)",
- pid, text, language, to_vcm);
-
- int utt_id = -1;
- int ret = vcd_server_request_tts(pid, text, language, to_vcm, &utt_id);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to request_tts");
- }
-
- gdbus_vcdaemon_complete_vcc_daemon_method_request_tts(service, invocation, ret, utt_id);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_cancel_tts(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int utt_id, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd cancel tts : pid(%d), utt_id(%d)", pid, utt_id);
-
- int ret = vcd_server_cancel_tts(pid, utt_id);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to cancel_tts");
- }
-
- gdbus_vcdaemon_complete_vcc_daemon_method_cancel_tts(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcc_daemon_method_get_tts_audio_format(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd get tts audio format : pid(%d)", pid);
-
- int rate;
- int channel;
- int audio_type;
- int ret = vcd_server_get_tts_audio_format(pid, &rate, &channel, &audio_type);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to get_tts_audio_format");
- }
-
- gdbus_vcdaemon_complete_vcc_daemon_method_get_tts_audio_format(service, invocation,
- ret, rate, channel, audio_type);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_widget_initialize(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to widget_initialize");
- }
- int service_state = vcd_server_get_service_state();
- int daemon_pid = getpid();
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget initialize : pid(%d) daemon_pid(%d)", pid, daemon_pid);
-
- gdbus_vcdaemon_complete_vcw_daemon_method_initialize(service, invocation,
- ret, service_state, daemon_pid);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget finalize : pid(%d)", pid);
-
- int ret = vcd_server_widget_finalize(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to widget_finalize");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_finalize(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_start_recording(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int widget_command, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget start recording : pid(%d)", pid);
-
- int ret = vcd_server_widget_start_recording(pid, widget_command);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to start_recording");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_start_recording(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_enable_asr_result(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean enable, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget enable asr result : pid(%d) enable(%d)", pid, enable);
-
- int ret = vcd_server_widget_enable_asr_result(pid, enable);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to enable_asr_result");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_enable_asr_result(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_start(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean silence, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget start : pid(%d), silence(%d)", pid, silence);
-
- int ret = vcd_server_widget_start(pid, silence);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to start");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_start(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_stop(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget stop : pid(%d)", pid);
-
- int ret = vcd_server_widget_stop(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to stop");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_stop(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_cancel(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd widget cancel : pid(%d)", pid);
-
- int ret = vcd_server_widget_cancel(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to cancel");
- }
-
- gdbus_vcdaemon_complete_vcw_daemon_method_cancel(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcw_daemon_method_set_foreground(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data)
-{
- int ret = vcd_server_set_foreground(pid, value);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_foreground");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd set_foreground : pid(%d), value(%d)", pid, value);
-
- gdbus_vcdaemon_complete_vcw_daemon_method_set_foreground(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int streaming_mode, gpointer user_data)
-{
- vcd_config_set_audio_streaming_mode((vcd_audio_streaming_mode_e)streaming_mode);
- int ret = vcd_server_mgr_initialize(pid);
- int service_state = vcd_server_get_service_state();
- int foreground = vcd_server_get_foreground();
- int daemon_pid = getpid();
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to initialize");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr initialize : pid(%d) service state(%d) foreground(%d) daemon_pid(%d)", pid, service_state, foreground, daemon_pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_initialize(service, invocation,
- ret, service_state, foreground, daemon_pid);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_finalize(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to finalize");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr finalize : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_finalize(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_command(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_command");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set command : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_command(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_unset_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_unset_command(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to unset_command");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr unset command : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_unset_command(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_demandable_client(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_demandable_client(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_demandable_client");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set demandable client : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_demandable_client(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_audio_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* audio_type, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_audio_type(pid, audio_type);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_audio_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set audio type : pid(%d), audio type(%s)", pid, audio_type);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_audio_type(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_get_audio_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- char* audio_type = NULL;
- int ret = vcd_server_mgr_get_audio_type(pid, &audio_type);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_audio_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr get audio type : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_get_audio_type(service, invocation, ret, audio_type);
- if (audio_type) {
- free (audio_type);
- audio_type = NULL;
- }
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_client_info(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_client_info(pid);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_client_info");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set client info : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_client_info(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_private_data(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* key, const gchar* data, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_private_data(pid, key, data);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_private_data");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set domain : pid(%d), key(%s), data(%s)", pid, key, data);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_private_data(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_get_private_data(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* key, gpointer user_data)
-{
- char* data = NULL;
- int ret = vcd_server_mgr_get_private_data(pid, key, &data);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to get_private_data");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr get private data : pid(%d), key(%s)", pid, key);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_get_private_data(service, invocation, ret, data);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_enable_command_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data)
-{
- int ret = vcd_server_mgr_enable_command_type(pid, cmd_type);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to enable_command_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr enable command type : pid(%d), cmd_type(%d)", pid, cmd_type);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_enable_command_type(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_disable_command_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data)
-{
- int ret = vcd_server_mgr_disable_command_type(pid, cmd_type);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to disable_command_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr disable command type : pid(%d), cmd_type(%d)", pid, cmd_type);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_disable_command_type(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_request_start(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int recognition_mode, gboolean exclusive, gboolean start_by_client, gpointer user_data)
-{
- int ret = vcd_server_mgr_start((vcd_recognition_mode_e)recognition_mode, exclusive, start_by_client);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to request_start");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr start : pid(%d) recognition_mode(%d) exclusive(%d) start by client(%d)", pid, recognition_mode, exclusive, start_by_client);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_request_start(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_request_stop(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_stop();
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to request_stop");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr stop : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_request_stop(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_request_cancel(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- int ret = vcd_server_mgr_cancel();
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to request_cancel");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr cancel : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_request_cancel(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_result_selection(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data)
-{
- vcd_server_mgr_result_select();
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr result selection : pid(%d)", pid);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_result_selection(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_set_domain(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* domain, gpointer user_data)
-{
- int ret = vcd_server_mgr_set_domain(pid, domain);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to disable_command_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr set domain : pid(%d), domain(%s)", pid, domain);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_set_domain(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_do_action(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int type, const gchar* send_event, gpointer user_data)
-{
- int ret = vcd_server_mgr_do_action(pid, type, send_event);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to disable_command_type");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr request to do action : pid(%d), type(%d) send_event(%s)", pid, type, send_event);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_do_action(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_specific_engine_request(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* engine_app_id, const gchar* event, const gchar* request, gpointer user_data)
-{
- int ret = vcd_server_mgr_send_specific_engine_request(pid, engine_app_id, event, request);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to specific_engine_request");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr specific engine request : pid(%d), engine_app_id(%s), event(%s), request(%s), ret(%d)", pid, engine_app_id, event, request, ret);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_specific_engine_request(service, invocation);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_send_audio_streaming(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int event, GVariant *buffer, gpointer user_data)
-{
- int len = 0;
- GVariantIter *iter;
- guchar uc;
- const int MAX_STREAMING_DATA_SIZE = 4096;
- unsigned char data[MAX_STREAMING_DATA_SIZE];
-
- gdbus_vcdaemon_complete_vcm_daemon_method_send_audio_streaming(service, invocation);
-
- g_variant_get(buffer, "ay", &iter);
- while (g_variant_iter_loop(iter, "y", &uc)) {
- if (len < MAX_STREAMING_DATA_SIZE) {
- data[len++] = uc;
- } else {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] max size reached : %d", len);
- }
- }
- g_variant_iter_free(iter);
-
- int ret = vcd_server_mgr_send_audio_streaming(pid, event, data, len);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to send_audio_streaming");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr send audio streaming : pid(%d), event(%d), buffer(%p), len(%d)", pid, event, data, len);
-
- return TRUE;
-}
-
-gboolean vcm_daemon_method_change_system_volume(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int volume_event, gpointer user_data)
-{
- int ret = vcd_server_mgr_change_system_volume(pid, volume_event);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to change_system_volume");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd mgr change system volume: pid(%d), volume_event(%d)", pid, volume_event);
-
- gdbus_vcdaemon_complete_vcm_daemon_method_change_system_volume(service, invocation, ret);
-
- return TRUE;
-}
-
-gboolean vcs_daemon_method_set_language(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* language, gpointer user_data)
-{
- int ret = vcd_server_set_language(language);
-
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to set_language");
- }
-
- SLOG(LOG_DEBUG, TAG_VCD, "[IN] vcd server set language : language(%s)", language);
-
- gdbus_vcdaemon_complete_vcs_daemon_method_set_language(service, invocation, ret);
-
- return TRUE;
-}
-#else
int __dbus_error_return(DBusConnection* conn, DBusMessage* msg, int ret)
{
DBusMessage* reply;
return 0;
}
-#endif
extern "C" {
#endif
-#define USE_GDBUS
-
-#ifdef USE_GDBUS
-#include "vc_gdbus.h"
-
-/*
-* Dbus Common Server functions
-*/
-gboolean vc_method_hello(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- gpointer user_data);
-
-/*
-* Dbus Server functions for client
-*/
-gboolean vcc_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcc_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcc_daemon_method_set_exclusive_cmd(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data);
-
-gboolean vcc_daemon_method_set_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data);
-
-gboolean vcc_daemon_method_unset_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data);
-
-gboolean vcc_daemon_method_set_foreground(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data);
-
-gboolean vcc_daemon_method_set_server_dialog(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* app_id, const gchar* credential, gpointer user_data);
-
-gboolean vcc_daemon_method_dialog(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* disp_text, const gchar* utt_text, gboolean continuous, gpointer user_data);
-
-gboolean vcc_daemon_method_is_system_command_valid(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcc_daemon_method_request_tts(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* text, const gchar* language, gboolean to_vcm, gpointer user_data);
-
-gboolean vcc_daemon_method_cancel_tts(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int utt_id, gpointer user_data);
-
-gboolean vcc_daemon_method_get_tts_audio_format(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-/*
-* Dbus Server functions for widget
-*/
-
-gboolean vcw_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcw_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcw_daemon_method_start_recording(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int widget_command, gpointer user_data);
-
-gboolean vcw_daemon_method_enable_asr_result(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean enable, gpointer user_data);
-
-gboolean vcw_daemon_method_start(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean silence, gpointer user_data);
-
-gboolean vcw_daemon_method_stop(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcw_daemon_method_cancel(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcw_daemon_method_set_foreground(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gboolean value, gpointer user_data);
-
-/*
-* Dbus Server functions for manager
-*/
-
-gboolean vcm_daemon_method_initialize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int streaming_mode, gpointer user_data);
-
-gboolean vcm_daemon_method_finalize(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_unset_command(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_demandable_client(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_audio_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* audio_type, gpointer user_data);
-
-gboolean vcm_daemon_method_get_audio_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_client_info(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_private_data(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* key, const gchar* data, gpointer user_data);
-
-gboolean vcm_daemon_method_get_private_data(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* key, gpointer user_data);
-
-gboolean vcm_daemon_method_enable_command_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data);
-
-gboolean vcm_daemon_method_disable_command_type(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int cmd_type, gpointer user_data);
-
-gboolean vcm_daemon_method_request_start(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int recognition_mode, gboolean exclusive, gboolean start_by_client, gpointer user_data);
-
-gboolean vcm_daemon_method_request_stop(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_request_cancel(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_result_selection(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, gpointer user_data);
-
-gboolean vcm_daemon_method_set_domain(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* domain, gpointer user_data);
-
-gboolean vcm_daemon_method_do_action(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int type, const gchar* send_event, gpointer user_data);
-
-gboolean vcm_daemon_method_specific_engine_request(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* engine_app_id, const gchar* event, const gchar* request, gpointer user_data);
-
-gboolean vcm_daemon_method_send_audio_streaming(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int event, GVariant *buffer, gpointer user_data);
-
-gboolean vcm_daemon_method_change_system_volume(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, int volume_event, gpointer user_data);
-
-/*
-* Dbus Server functions for setting
-*/
-
-gboolean vcs_daemon_method_set_language(GDBusVcdaemon *service, GDBusMethodInvocation *invocation,
- int pid, const gchar* language, gpointer user_data);
-
-#else
int vcd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg);
/*
int vcd_dbus_server_get_tts_audio_format(DBusConnection* conn, DBusMessage* msg);
-#endif
#ifdef __cplusplus
}
SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail ecore_init()");
return VCE_ERROR_OPERATION_FAILED;
}
- if (!ecore_main_loop_glib_integrate()) {
- SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail ecore_main_loop_glib_integrate()");
- return VCE_ERROR_OPERATION_FAILED;
- }
// if (0 != vcd_dbus_open_connection()) {
// SLOG(LOG_ERROR, TAG_VCD, "[ERROR] Fail to open connection");
<allow own_prefix="org.tizen.voice.vcmanager"/>
<allow send_destination="org.tizen.voice.vcmanager"/>
- <allow own="org.tizen.voice.vcdaemon"/>
- <allow send_destination="org.tizen.voice.vcdaemon"/>
+ <allow own="org.tizen.voice.vcserver"/>
+ <allow send_destination="org.tizen.voice.vcserver"/>
</policy>
</busconfig>