From e8abf8a189817b48dcc287b6dc35aecf019f77e1 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 22 Nov 2021 19:32:13 +0900 Subject: [PATCH 01/16] [ACR-1670] Add error enum for tts operation Change-Id: Id48b92cab2b55b96f88fe4597ff46ecd0c874bad Signed-off-by: Suyeon Hwang --- include/vce.h | 3 ++- include/voice_control_common.h | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/vce.h b/include/vce.h index fab8f26..a504a94 100644 --- a/include/vce.h +++ b/include/vce.h @@ -45,7 +45,8 @@ typedef enum { VCE_ERROR_INVALID_LANGUAGE = TIZEN_ERROR_VOICE_CONTROL | 0x012, /**< Invalid language */ VCE_ERROR_OPERATION_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x014, /**< Operation failed */ VCE_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ - VCE_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022 /**< Not supported feature of current engine */ + VCE_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022, /**< Not supported feature of current engine */ + VCE_ERROR_TTS_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x024 /**< TTS operation failed (Since 7.0) */ } vce_error_e; /** diff --git a/include/voice_control_common.h b/include/voice_control_common.h index 136e628..400dce9 100644 --- a/include/voice_control_common.h +++ b/include/voice_control_common.h @@ -41,23 +41,24 @@ typedef enum { VC_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ VC_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of Memory */ VC_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */ - VC_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + VC_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ VC_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< No answer from service */ VC_ERROR_RECORDER_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Busy recorder */ - VC_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ + VC_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ VC_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< VC NOT supported */ VC_ERROR_INVALID_STATE = TIZEN_ERROR_VOICE_CONTROL | 0x011, /**< Invalid state */ VC_ERROR_INVALID_LANGUAGE = TIZEN_ERROR_VOICE_CONTROL | 0x012, /**< Invalid language */ VC_ERROR_ENGINE_NOT_FOUND = TIZEN_ERROR_VOICE_CONTROL | 0x013, /**< No available engine */ VC_ERROR_OPERATION_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x014, /**< Operation failed */ - VC_ERROR_OPERATION_REJECTED = TIZEN_ERROR_VOICE_CONTROL | 0x015, /**< Operation rejected */ + VC_ERROR_OPERATION_REJECTED = TIZEN_ERROR_VOICE_CONTROL | 0x015, /**< Operation rejected */ VC_ERROR_ITERATION_END = TIZEN_ERROR_VOICE_CONTROL | 0x016, /**< List reached end */ VC_ERROR_EMPTY = TIZEN_ERROR_VOICE_CONTROL | 0x017, /**< List empty */ VC_ERROR_SERVICE_RESET = TIZEN_ERROR_VOICE_CONTROL | 0x018, /**< Service daemon reset (Since 3.0) */ VC_ERROR_IN_PROGRESS_TO_READY = TIZEN_ERROR_VOICE_CONTROL | 0x019, /**< In progress to ready (Since 3.0) */ VC_ERROR_IN_PROGRESS_TO_RECORDING = TIZEN_ERROR_VOICE_CONTROL | 0x020, /**< In progress to recording (Since 3.0) */ - VC_ERROR_IN_PROGRESS_TO_PROCESSING = TIZEN_ERROR_VOICE_CONTROL | 0x021, /**< In progress to processing (Since 3.0) */ - VC_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022 /**< Not supported feature of current engine (Since 4.0) */ + VC_ERROR_IN_PROGRESS_TO_PROCESSING = TIZEN_ERROR_VOICE_CONTROL | 0x021, /**< In progress to processing (Since 3.0) */ + VC_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022, /**< Not supported feature of current engine (Since 4.0) */ + VC_ERROR_TTS_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x024 /**< TTS operation failed (Since 7.0) */ } vc_error_e; @@ -179,7 +180,7 @@ typedef void (*vc_current_language_changed_cb)(const char* previous, const char* * followed by ISO 639-1 for the two-letter language code. * For example, "ko_KR" for Korean, "en_US" for American English * @param[in] user_data The user data passed from the foreach function - * @return @c true to continue with the next iteration of the loop, + * @return @c true to continue with the next iteration of the loop, * @c false to break out of the loop * @pre The function will invoke this callback. */ -- 2.7.4 From a981fb57fe044ac432ec9745b67a333ef6d95e22 Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 9 Dec 2021 21:37:04 +0900 Subject: [PATCH 02/16] Change type of uid from signed int to unsigned int Change-Id: I4c3754d4a468afa9fa1b7091eb65a8124869ba0e --- client/vc.c | 4 ++-- client/vc_client.c | 8 ++++---- client/vc_client.h | 6 +++--- client/vc_mgr.c | 6 +++--- client/vc_mgr_client.c | 8 ++++---- client/vc_mgr_client.h | 6 +++--- client/vc_setting.c | 2 +- client/vc_widget.c | 2 +- client/vc_widget_client.c | 6 +++--- client/vc_widget_client.h | 8 ++++---- common/vc_command.c | 4 ++-- common/vc_config_mgr.c | 20 ++++++++++---------- common/vc_config_mgr.h | 16 ++++++++-------- server/vcd_server.c | 14 +++++++------- server/vcd_server_data.cpp | 4 ++-- server/vcd_server_data.h | 6 +++--- server/vce.c | 4 ++-- 17 files changed, 62 insertions(+), 62 deletions(-) diff --git a/client/vc.c b/client/vc.c index 2f21d9c..60143a2 100644 --- a/client/vc.c +++ b/client/vc.c @@ -164,8 +164,8 @@ static int __vc_check_privilege() //LCOV_EXCL_STOP } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); diff --git a/client/vc_client.c b/client/vc_client.c index c7db4cc..60194c0 100644 --- a/client/vc_client.c +++ b/client/vc_client.c @@ -21,7 +21,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ int xid; /*<< main X window id */ vc_result_cb result_cb; @@ -224,7 +224,7 @@ bool vc_client_is_valid(vc_h vc) return true; } -bool vc_client_is_valid_by_uid(int uid) +bool vc_client_is_valid_by_uid(unsigned int uid) { vc_client_s *data = NULL; @@ -246,7 +246,7 @@ bool vc_client_is_valid_by_uid(int uid) } //LCOV_EXCL_START -int vc_client_get_handle(int uid, vc_h* vc) +int vc_client_get_handle(unsigned int uid, vc_h* vc) { vc_client_s *data = NULL; @@ -473,7 +473,7 @@ int vc_client_get_client_state(vc_h vc, vc_state_e* state) return 0; } -int vc_client_get_client_state_by_uid(int uid, vc_state_e* state) +int vc_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state) { vc_client_s *data = NULL; diff --git a/client/vc_client.h b/client/vc_client.h index e084fe7..7c22e2c 100644 --- a/client/vc_client.h +++ b/client/vc_client.h @@ -38,9 +38,9 @@ int vc_client_destroy(vc_h vc); bool vc_client_is_valid(vc_h vc); -bool vc_client_is_valid_by_uid(int uid); +bool vc_client_is_valid_by_uid(unsigned int uid); -int vc_client_get_handle(int uid, vc_h* vc); +int vc_client_get_handle(unsigned int uid, vc_h* vc); /* * set/get callback function @@ -77,7 +77,7 @@ int vc_client_set_client_state(vc_h vc, vc_state_e state); int vc_client_get_client_state(vc_h vc, vc_state_e* state); -int vc_client_get_client_state_by_uid(int uid, vc_state_e* state); +int vc_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state); int vc_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/client/vc_mgr.c b/client/vc_mgr.c index 5c0a44f..0c82dc8 100755 --- a/client/vc_mgr.c +++ b/client/vc_mgr.c @@ -42,7 +42,7 @@ #include "voice_control_manager_internal.h" -#define VC_MANAGER_CONFIG_HANDLE 100000 +#define VC_MANAGER_CONFIG_HANDLE 10000000 static Ecore_Timer* g_send_hello_timer = NULL; static Ecore_Timer* g_request_init_timer = NULL; @@ -226,8 +226,8 @@ static int __vc_mgr_check_privilege() return VC_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); if (false == ret) { diff --git a/client/vc_mgr_client.c b/client/vc_mgr_client.c index 4ccb0c3..f463c48 100644 --- a/client/vc_mgr_client.c +++ b/client/vc_mgr_client.c @@ -22,7 +22,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ vc_mgr_all_result_cb all_result_cb; void* all_result_user_data; @@ -308,7 +308,7 @@ bool vc_mgr_client_is_valid(vc_h vc) return true; } -bool vc_mgr_client_is_valid_by_uid(int uid) +bool vc_mgr_client_is_valid_by_uid(unsigned int uid) { vc_mgr_client_s *data = NULL; @@ -329,7 +329,7 @@ bool vc_mgr_client_is_valid_by_uid(int uid) return false; } -int vc_mgr_client_get_handle(int uid, vc_h* vc) +int vc_mgr_client_get_handle(unsigned int uid, vc_h* vc) { vc_mgr_client_s *data = NULL; @@ -838,7 +838,7 @@ int vc_mgr_client_get_client_state(vc_h vc, vc_state_e* state) return 0; } -int vc_mgr_client_get_client_state_by_uid(int uid, vc_state_e* state) +int vc_mgr_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state) { vc_mgr_client_s *data = NULL; diff --git a/client/vc_mgr_client.h b/client/vc_mgr_client.h index 800ba0f..dfcfde1 100644 --- a/client/vc_mgr_client.h +++ b/client/vc_mgr_client.h @@ -43,9 +43,9 @@ int vc_mgr_client_destroy(vc_h vc); bool vc_mgr_client_is_valid(vc_h vc); -bool vc_mgr_client_is_valid_by_uid(int uid); +bool vc_mgr_client_is_valid_by_uid(unsigned int uid); -int vc_mgr_client_get_handle(int uid, vc_h* vc); +int vc_mgr_client_get_handle(unsigned int uid, vc_h* vc); int vc_mgr_client_get_pid(vc_h vc, int* pid); @@ -127,7 +127,7 @@ int vc_mgr_client_set_client_state(vc_h vc, vc_state_e state); int vc_mgr_client_get_client_state(vc_h vc, vc_state_e* state); -int vc_mgr_client_get_client_state_by_uid(int uid, vc_state_e* state); +int vc_mgr_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state); int vc_mgr_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/client/vc_setting.c b/client/vc_setting.c index 4a8ca0e..238480f 100644 --- a/client/vc_setting.c +++ b/client/vc_setting.c @@ -29,7 +29,7 @@ typedef enum { VC_SETTING_STATE_READY } vc_setting_state_e; -#define VC_SETTING_CONFIG_HANDLE 300000 +#define VC_SETTING_CONFIG_HANDLE 30000000 static vc_setting_state_e g_state = VC_SETTING_STATE_NONE; diff --git a/client/vc_widget.c b/client/vc_widget.c index c6dcd8a..e5e7be4 100644 --- a/client/vc_widget.c +++ b/client/vc_widget.c @@ -30,7 +30,7 @@ #include "voice_control_widget.h" -#define VC_WIDGET_CONFIG_HANDLE 200000 +#define VC_WIDGET_CONFIG_HANDLE 20000000 static Ecore_Event_Handler* g_focus_in_handler = NULL; static Ecore_Event_Handler* g_focus_out_handler = NULL; diff --git a/client/vc_widget_client.c b/client/vc_widget_client.c index 5c13f16..0907406 100644 --- a/client/vc_widget_client.c +++ b/client/vc_widget_client.c @@ -190,7 +190,7 @@ bool vc_widget_client_is_valid(vc_h vc) return true; } -bool vc_widget_client_is_valid_by_uid(int uid) +bool vc_widget_client_is_valid_by_uid(unsigned int uid) { vc_widget_s *data = NULL; @@ -215,7 +215,7 @@ bool vc_widget_client_is_valid_by_uid(int uid) return false; } -int vc_widget_client_get_handle(int uid, vc_h* vc) +int vc_widget_client_get_handle(unsigned int uid, vc_h* vc) { vc_widget_s *data = NULL; @@ -546,7 +546,7 @@ int vc_widget_client_get_state(vc_h vc, vc_state_e* state) return 0; } -int vc_widget_client_get_state_by_uid(int uid, vc_state_e* state) +int vc_widget_client_get_state_by_uid(unsigned int uid, vc_state_e* state) { vc_widget_s *data = NULL; diff --git a/client/vc_widget_client.h b/client/vc_widget_client.h index 55a44e3..5ef3a55 100644 --- a/client/vc_widget_client.h +++ b/client/vc_widget_client.h @@ -30,7 +30,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ int xid; /*<< main Wayland window id */ vc_result_cb result_cb; @@ -80,9 +80,9 @@ int vc_widget_client_destroy(vc_h vc); bool vc_widget_client_is_valid(vc_h vc); -bool vc_widget_client_is_valid_by_uid(int uid); +bool vc_widget_client_is_valid_by_uid(unsigned int uid); -int vc_widget_client_get_handle(int uid, vc_h* vc); +int vc_widget_client_get_handle(unsigned int uid, vc_h* vc); vc_widget_s* widget_get(vc_h vc); @@ -136,7 +136,7 @@ int vc_widget_client_set_state(vc_h vc, vc_state_e state); int vc_widget_client_get_state(vc_h vc, vc_state_e* state); -int vc_widget_client_get_state_by_uid(int uid, vc_state_e* state); +int vc_widget_client_get_state_by_uid(unsigned int uid, vc_state_e* state); int vc_widget_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/common/vc_command.c b/common/vc_command.c index 25eabf9..9d7f9d6 100644 --- a/common/vc_command.c +++ b/common/vc_command.c @@ -157,8 +157,8 @@ static int __vc_cmd_check_privilege() return VC_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); diff --git a/common/vc_config_mgr.c b/common/vc_config_mgr.c index f1c351b..cf3bbda 100644 --- a/common/vc_config_mgr.c +++ b/common/vc_config_mgr.c @@ -37,7 +37,7 @@ #define BUF_LEN (EVENT_SIZE + 16) typedef struct { - int uid; + unsigned int uid; vc_config_engine_changed_cb engine_cb; vc_config_lang_changed_cb lang_cb; vc_config_enabled_cb enabled_cb; @@ -274,7 +274,7 @@ int __vc_config_mgr_select_lang(const char* engine_id, char** language) return VC_ERROR_OPERATION_FAILED; } -int __vc_config_release_client(int uid) +int __vc_config_release_client(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -828,7 +828,7 @@ void __vc_config_language_changed_cb(keynode_t *key, void *data) return; } -int vc_config_mgr_initialize(int uid) +int vc_config_mgr_initialize(unsigned int uid) { GSList *iter = NULL; int* get_uid; @@ -1044,7 +1044,7 @@ int vc_config_mgr_initialize(int uid) return 0; } -int vc_config_mgr_finalize(int uid) +int vc_config_mgr_finalize(unsigned int uid) { SLOG(LOG_INFO, vc_config_tag(), "[WARNING] Enter critical section"); @@ -1133,7 +1133,7 @@ int __vc_config_mgr_unregister_config_event() return 0; } -int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb) +int vc_config_mgr_set_engine_cb(unsigned int uid, vc_config_engine_changed_cb engine_cb) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1165,7 +1165,7 @@ int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb) return 0; } -int vc_config_mgr_unset_engine_cb(int uid) +int vc_config_mgr_unset_engine_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1194,7 +1194,7 @@ int vc_config_mgr_unset_engine_cb(int uid) } -int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb) +int vc_config_mgr_set_lang_cb(unsigned int uid, vc_config_lang_changed_cb lang_cb) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1226,7 +1226,7 @@ int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb) return 0; } -int vc_config_mgr_unset_lang_cb(int uid) +int vc_config_mgr_unset_lang_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1254,7 +1254,7 @@ int vc_config_mgr_unset_lang_cb(int uid) return 0; } -int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb) +int vc_config_mgr_set_enabled_cb(unsigned int uid, vc_config_enabled_cb enabled_cb) { if (NULL == enabled_cb) { SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] enabled cb is NULL : uid(%d) ", uid); @@ -1286,7 +1286,7 @@ int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb) return VC_CONFIG_ERROR_INVALID_PARAMETER; } -int vc_config_mgr_unset_enabled_cb(int uid) +int vc_config_mgr_unset_enabled_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; diff --git a/common/vc_config_mgr.h b/common/vc_config_mgr.h index 647da0f..ce623d1 100644 --- a/common/vc_config_mgr.h +++ b/common/vc_config_mgr.h @@ -45,25 +45,25 @@ typedef void (*vc_config_enabled_cb)(bool enable); typedef bool (*vc_config_supported_engine_cb)(const char *engine_name, const char *engine_appid, const char *setting, const char *default_lang, bool non_fixed_support, void *user_data); -int vc_config_mgr_initialize(int uid); +int vc_config_mgr_initialize(unsigned int uid); -int vc_config_mgr_finalize(int uid); +int vc_config_mgr_finalize(unsigned int uid); /* Set / Unset callback */ -int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb); +int vc_config_mgr_set_engine_cb(unsigned int uid, vc_config_engine_changed_cb engine_cb); -int vc_config_mgr_unset_engine_cb(int uid); +int vc_config_mgr_unset_engine_cb(unsigned int uid); -int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb); +int vc_config_mgr_set_lang_cb(unsigned int uid, vc_config_lang_changed_cb lang_cb); -int vc_config_mgr_unset_lang_cb(int uid); +int vc_config_mgr_unset_lang_cb(unsigned int uid); -int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb); +int vc_config_mgr_set_enabled_cb(unsigned int uid, vc_config_enabled_cb enabled_cb); -int vc_config_mgr_unset_enabled_cb(int uid); +int vc_config_mgr_unset_enabled_cb(unsigned int uid); int vc_config_mgr_get_auto_language(bool* value); diff --git a/server/vcd_server.c b/server/vcd_server.c index 486b6cb..853597c 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -45,7 +45,7 @@ static Ecore_Timer *g_check_widget_client_timer = NULL; static Ecore_Timer *g_check_client_timer = NULL; static Ecore_Thread* g_tts_thread = NULL; -static int g_current_uid = -1; +static unsigned int g_current_uid = 0; static int g_current_utt_id = -1; /** @@ -1137,7 +1137,7 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au /* send TTS feedback audio format to VC manager */ int ret = VCD_ERROR_NONE; int pid = g_current_uid / 1000; - if (-1 == g_current_uid || vcd_client_manager_get_pid() == pid) { + if (0 == g_current_uid || vcd_client_manager_get_pid() == pid) { ret = vcdc_send_feedback_audio_format_to_manager(vcd_client_manager_get_pid(), rate, channel, audio_type); if (VCD_ERROR_NONE != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send TTS feedback audio format to VC manager"); @@ -1151,7 +1151,7 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int len) { - if (-1 == g_current_uid && VCE_FEEDBACK_EVENT_START == event) { + if (0 == g_current_uid && VCE_FEEDBACK_EVENT_START == event) { g_current_utt_id = (g_current_utt_id + 1) % 1000; g_current_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; SLOG(LOG_INFO, TAG_VCD, "[Server info] set current uid and utt_id as manager pid(%d)", vcd_client_manager_get_pid()); @@ -1179,7 +1179,7 @@ int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int le if (VCE_FEEDBACK_EVENT_FINISH == event) { /* reset current uid */ - g_current_uid = -1; + g_current_uid = 0; /* Set service state to ready if state is synthesizing */ vcd_state_e state = vcd_config_get_service_state(); @@ -1348,7 +1348,7 @@ int vcd_initialize(vce_request_callback_s *callback) SLOG(LOG_WARN, TAG_VCD, "[Server Warning] Fail to create timer of client check"); } - g_current_uid = -1; + g_current_uid = 0; g_current_utt_id = -1; SLOG(LOG_ERROR, TAG_VCD, "[Server SUCCESS] initialize"); @@ -2684,7 +2684,7 @@ int vcd_server_request_tts(int pid, const char* text, const char* language, int return VCD_ERROR_INVALID_STATE; } - int uid = -1; + unsigned int uid = 0; g_current_utt_id = (g_current_utt_id + 1) % 1000; *utt_id = g_current_utt_id; if (0 == to_vcm) { @@ -2737,7 +2737,7 @@ int vcd_server_cancel_tts(int pid, int utt_id) vc_tts_text_data_s* tts_text_data = NULL; - int uid = pid * 1000 + utt_id; + unsigned int uid = pid * 1000 + utt_id; int ret = vcd_data_get_tts_text_data(uid, &tts_text_data); if (0 != ret) { SLOG(LOG_WARN, TAG_VCD, "[Server WARN] No data in vcd tts text queue"); diff --git a/server/vcd_server_data.cpp b/server/vcd_server_data.cpp index 6f5906e..9cf6da5 100644 --- a/server/vcd_server_data.cpp +++ b/server/vcd_server_data.cpp @@ -51,7 +51,7 @@ static int __data_show_text_list(void) return VCD_ERROR_NONE; } -int vcd_data_add_tts_text_data(int uid, vc_tts_text_data_s* data) +int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data) { if (NULL == data) { SLOG(LOG_ERROR, TAG_VCD, "[DATA ERROR] feedback data is NULL"); @@ -110,7 +110,7 @@ int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data) return VCD_ERROR_NONE; } -int vcd_data_get_tts_text_data(int uid, vc_tts_text_data_s** data) +int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data) { SLOG(LOG_INFO, TAG_VCD, "[DATA] Get tts text data : uid(%d)", uid); diff --git a/server/vcd_server_data.h b/server/vcd_server_data.h index af2f055..86e4ece 100644 --- a/server/vcd_server_data.h +++ b/server/vcd_server_data.h @@ -30,7 +30,7 @@ extern "C" { typedef struct { - int uid; + unsigned int uid; int pid; int utt_id; char* text; @@ -38,11 +38,11 @@ typedef struct { } vc_tts_text_data_s; -int vcd_data_add_tts_text_data(int uid, vc_tts_text_data_s* data); +int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data); int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data); -int vcd_data_get_tts_text_data(int uid, vc_tts_text_data_s** data); +int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data); int vcd_data_get_first_tts_text_data(vc_tts_text_data_s** data); diff --git a/server/vce.c b/server/vce.c index 970f521..5d71383 100644 --- a/server/vce.c +++ b/server/vce.c @@ -127,8 +127,8 @@ static int __vce_check_privilege() return VCE_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); -- 2.7.4 From ebde3d7f5d6d6802889fb3bbe868f587bc374a4b Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 9 Dec 2021 21:37:04 +0900 Subject: [PATCH 03/16] Change type of uid from signed int to unsigned int Change-Id: I4c3754d4a468afa9fa1b7091eb65a8124869ba0e --- client/vc.c | 4 ++-- client/vc_client.c | 8 ++++---- client/vc_client.h | 6 +++--- client/vc_mgr.c | 6 +++--- client/vc_mgr_client.c | 8 ++++---- client/vc_mgr_client.h | 6 +++--- client/vc_setting.c | 2 +- client/vc_widget.c | 2 +- client/vc_widget_client.c | 6 +++--- client/vc_widget_client.h | 8 ++++---- common/vc_command.c | 4 ++-- common/vc_config_mgr.c | 20 ++++++++++---------- common/vc_config_mgr.h | 16 ++++++++-------- server/vcd_server.c | 14 +++++++------- server/vcd_server_data.cpp | 4 ++-- server/vcd_server_data.h | 6 +++--- server/vce.c | 4 ++-- 17 files changed, 62 insertions(+), 62 deletions(-) diff --git a/client/vc.c b/client/vc.c index 2f21d9c..60143a2 100644 --- a/client/vc.c +++ b/client/vc.c @@ -164,8 +164,8 @@ static int __vc_check_privilege() //LCOV_EXCL_STOP } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); diff --git a/client/vc_client.c b/client/vc_client.c index c7db4cc..60194c0 100644 --- a/client/vc_client.c +++ b/client/vc_client.c @@ -21,7 +21,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ int xid; /*<< main X window id */ vc_result_cb result_cb; @@ -224,7 +224,7 @@ bool vc_client_is_valid(vc_h vc) return true; } -bool vc_client_is_valid_by_uid(int uid) +bool vc_client_is_valid_by_uid(unsigned int uid) { vc_client_s *data = NULL; @@ -246,7 +246,7 @@ bool vc_client_is_valid_by_uid(int uid) } //LCOV_EXCL_START -int vc_client_get_handle(int uid, vc_h* vc) +int vc_client_get_handle(unsigned int uid, vc_h* vc) { vc_client_s *data = NULL; @@ -473,7 +473,7 @@ int vc_client_get_client_state(vc_h vc, vc_state_e* state) return 0; } -int vc_client_get_client_state_by_uid(int uid, vc_state_e* state) +int vc_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state) { vc_client_s *data = NULL; diff --git a/client/vc_client.h b/client/vc_client.h index e084fe7..7c22e2c 100644 --- a/client/vc_client.h +++ b/client/vc_client.h @@ -38,9 +38,9 @@ int vc_client_destroy(vc_h vc); bool vc_client_is_valid(vc_h vc); -bool vc_client_is_valid_by_uid(int uid); +bool vc_client_is_valid_by_uid(unsigned int uid); -int vc_client_get_handle(int uid, vc_h* vc); +int vc_client_get_handle(unsigned int uid, vc_h* vc); /* * set/get callback function @@ -77,7 +77,7 @@ int vc_client_set_client_state(vc_h vc, vc_state_e state); int vc_client_get_client_state(vc_h vc, vc_state_e* state); -int vc_client_get_client_state_by_uid(int uid, vc_state_e* state); +int vc_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state); int vc_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/client/vc_mgr.c b/client/vc_mgr.c index 5c0a44f..0c82dc8 100755 --- a/client/vc_mgr.c +++ b/client/vc_mgr.c @@ -42,7 +42,7 @@ #include "voice_control_manager_internal.h" -#define VC_MANAGER_CONFIG_HANDLE 100000 +#define VC_MANAGER_CONFIG_HANDLE 10000000 static Ecore_Timer* g_send_hello_timer = NULL; static Ecore_Timer* g_request_init_timer = NULL; @@ -226,8 +226,8 @@ static int __vc_mgr_check_privilege() return VC_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); if (false == ret) { diff --git a/client/vc_mgr_client.c b/client/vc_mgr_client.c index 4ccb0c3..f463c48 100644 --- a/client/vc_mgr_client.c +++ b/client/vc_mgr_client.c @@ -22,7 +22,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ vc_mgr_all_result_cb all_result_cb; void* all_result_user_data; @@ -308,7 +308,7 @@ bool vc_mgr_client_is_valid(vc_h vc) return true; } -bool vc_mgr_client_is_valid_by_uid(int uid) +bool vc_mgr_client_is_valid_by_uid(unsigned int uid) { vc_mgr_client_s *data = NULL; @@ -329,7 +329,7 @@ bool vc_mgr_client_is_valid_by_uid(int uid) return false; } -int vc_mgr_client_get_handle(int uid, vc_h* vc) +int vc_mgr_client_get_handle(unsigned int uid, vc_h* vc) { vc_mgr_client_s *data = NULL; @@ -838,7 +838,7 @@ int vc_mgr_client_get_client_state(vc_h vc, vc_state_e* state) return 0; } -int vc_mgr_client_get_client_state_by_uid(int uid, vc_state_e* state) +int vc_mgr_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state) { vc_mgr_client_s *data = NULL; diff --git a/client/vc_mgr_client.h b/client/vc_mgr_client.h index 800ba0f..dfcfde1 100644 --- a/client/vc_mgr_client.h +++ b/client/vc_mgr_client.h @@ -43,9 +43,9 @@ int vc_mgr_client_destroy(vc_h vc); bool vc_mgr_client_is_valid(vc_h vc); -bool vc_mgr_client_is_valid_by_uid(int uid); +bool vc_mgr_client_is_valid_by_uid(unsigned int uid); -int vc_mgr_client_get_handle(int uid, vc_h* vc); +int vc_mgr_client_get_handle(unsigned int uid, vc_h* vc); int vc_mgr_client_get_pid(vc_h vc, int* pid); @@ -127,7 +127,7 @@ int vc_mgr_client_set_client_state(vc_h vc, vc_state_e state); int vc_mgr_client_get_client_state(vc_h vc, vc_state_e* state); -int vc_mgr_client_get_client_state_by_uid(int uid, vc_state_e* state); +int vc_mgr_client_get_client_state_by_uid(unsigned int uid, vc_state_e* state); int vc_mgr_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/client/vc_setting.c b/client/vc_setting.c index 4a8ca0e..238480f 100644 --- a/client/vc_setting.c +++ b/client/vc_setting.c @@ -29,7 +29,7 @@ typedef enum { VC_SETTING_STATE_READY } vc_setting_state_e; -#define VC_SETTING_CONFIG_HANDLE 300000 +#define VC_SETTING_CONFIG_HANDLE 30000000 static vc_setting_state_e g_state = VC_SETTING_STATE_NONE; diff --git a/client/vc_widget.c b/client/vc_widget.c index c6dcd8a..e5e7be4 100644 --- a/client/vc_widget.c +++ b/client/vc_widget.c @@ -30,7 +30,7 @@ #include "voice_control_widget.h" -#define VC_WIDGET_CONFIG_HANDLE 200000 +#define VC_WIDGET_CONFIG_HANDLE 20000000 static Ecore_Event_Handler* g_focus_in_handler = NULL; static Ecore_Event_Handler* g_focus_out_handler = NULL; diff --git a/client/vc_widget_client.c b/client/vc_widget_client.c index 5c13f16..0907406 100644 --- a/client/vc_widget_client.c +++ b/client/vc_widget_client.c @@ -190,7 +190,7 @@ bool vc_widget_client_is_valid(vc_h vc) return true; } -bool vc_widget_client_is_valid_by_uid(int uid) +bool vc_widget_client_is_valid_by_uid(unsigned int uid) { vc_widget_s *data = NULL; @@ -215,7 +215,7 @@ bool vc_widget_client_is_valid_by_uid(int uid) return false; } -int vc_widget_client_get_handle(int uid, vc_h* vc) +int vc_widget_client_get_handle(unsigned int uid, vc_h* vc) { vc_widget_s *data = NULL; @@ -546,7 +546,7 @@ int vc_widget_client_get_state(vc_h vc, vc_state_e* state) return 0; } -int vc_widget_client_get_state_by_uid(int uid, vc_state_e* state) +int vc_widget_client_get_state_by_uid(unsigned int uid, vc_state_e* state) { vc_widget_s *data = NULL; diff --git a/client/vc_widget_client.h b/client/vc_widget_client.h index 55a44e3..5ef3a55 100644 --- a/client/vc_widget_client.h +++ b/client/vc_widget_client.h @@ -30,7 +30,7 @@ typedef struct { /* base info */ vc_h vc; int pid; - int uid; /*<< unique id = pid + handle */ + unsigned int uid; /*<< unique id = pid + handle */ int xid; /*<< main Wayland window id */ vc_result_cb result_cb; @@ -80,9 +80,9 @@ int vc_widget_client_destroy(vc_h vc); bool vc_widget_client_is_valid(vc_h vc); -bool vc_widget_client_is_valid_by_uid(int uid); +bool vc_widget_client_is_valid_by_uid(unsigned int uid); -int vc_widget_client_get_handle(int uid, vc_h* vc); +int vc_widget_client_get_handle(unsigned int uid, vc_h* vc); vc_widget_s* widget_get(vc_h vc); @@ -136,7 +136,7 @@ int vc_widget_client_set_state(vc_h vc, vc_state_e state); int vc_widget_client_get_state(vc_h vc, vc_state_e* state); -int vc_widget_client_get_state_by_uid(int uid, vc_state_e* state); +int vc_widget_client_get_state_by_uid(unsigned int uid, vc_state_e* state); int vc_widget_client_get_before_state(vc_h vc, vc_state_e* state, vc_state_e* before_state); diff --git a/common/vc_command.c b/common/vc_command.c index 25eabf9..9d7f9d6 100644 --- a/common/vc_command.c +++ b/common/vc_command.c @@ -157,8 +157,8 @@ static int __vc_cmd_check_privilege() return VC_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); diff --git a/common/vc_config_mgr.c b/common/vc_config_mgr.c index f1c351b..cf3bbda 100644 --- a/common/vc_config_mgr.c +++ b/common/vc_config_mgr.c @@ -37,7 +37,7 @@ #define BUF_LEN (EVENT_SIZE + 16) typedef struct { - int uid; + unsigned int uid; vc_config_engine_changed_cb engine_cb; vc_config_lang_changed_cb lang_cb; vc_config_enabled_cb enabled_cb; @@ -274,7 +274,7 @@ int __vc_config_mgr_select_lang(const char* engine_id, char** language) return VC_ERROR_OPERATION_FAILED; } -int __vc_config_release_client(int uid) +int __vc_config_release_client(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -828,7 +828,7 @@ void __vc_config_language_changed_cb(keynode_t *key, void *data) return; } -int vc_config_mgr_initialize(int uid) +int vc_config_mgr_initialize(unsigned int uid) { GSList *iter = NULL; int* get_uid; @@ -1044,7 +1044,7 @@ int vc_config_mgr_initialize(int uid) return 0; } -int vc_config_mgr_finalize(int uid) +int vc_config_mgr_finalize(unsigned int uid) { SLOG(LOG_INFO, vc_config_tag(), "[WARNING] Enter critical section"); @@ -1133,7 +1133,7 @@ int __vc_config_mgr_unregister_config_event() return 0; } -int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb) +int vc_config_mgr_set_engine_cb(unsigned int uid, vc_config_engine_changed_cb engine_cb) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1165,7 +1165,7 @@ int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb) return 0; } -int vc_config_mgr_unset_engine_cb(int uid) +int vc_config_mgr_unset_engine_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1194,7 +1194,7 @@ int vc_config_mgr_unset_engine_cb(int uid) } -int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb) +int vc_config_mgr_set_lang_cb(unsigned int uid, vc_config_lang_changed_cb lang_cb) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1226,7 +1226,7 @@ int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb) return 0; } -int vc_config_mgr_unset_lang_cb(int uid) +int vc_config_mgr_unset_lang_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; @@ -1254,7 +1254,7 @@ int vc_config_mgr_unset_lang_cb(int uid) return 0; } -int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb) +int vc_config_mgr_set_enabled_cb(unsigned int uid, vc_config_enabled_cb enabled_cb) { if (NULL == enabled_cb) { SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] enabled cb is NULL : uid(%d) ", uid); @@ -1286,7 +1286,7 @@ int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb) return VC_CONFIG_ERROR_INVALID_PARAMETER; } -int vc_config_mgr_unset_enabled_cb(int uid) +int vc_config_mgr_unset_enabled_cb(unsigned int uid) { GSList *iter = NULL; vc_config_client_s* temp_client = NULL; diff --git a/common/vc_config_mgr.h b/common/vc_config_mgr.h index 647da0f..ce623d1 100644 --- a/common/vc_config_mgr.h +++ b/common/vc_config_mgr.h @@ -45,25 +45,25 @@ typedef void (*vc_config_enabled_cb)(bool enable); typedef bool (*vc_config_supported_engine_cb)(const char *engine_name, const char *engine_appid, const char *setting, const char *default_lang, bool non_fixed_support, void *user_data); -int vc_config_mgr_initialize(int uid); +int vc_config_mgr_initialize(unsigned int uid); -int vc_config_mgr_finalize(int uid); +int vc_config_mgr_finalize(unsigned int uid); /* Set / Unset callback */ -int vc_config_mgr_set_engine_cb(int uid, vc_config_engine_changed_cb engine_cb); +int vc_config_mgr_set_engine_cb(unsigned int uid, vc_config_engine_changed_cb engine_cb); -int vc_config_mgr_unset_engine_cb(int uid); +int vc_config_mgr_unset_engine_cb(unsigned int uid); -int vc_config_mgr_set_lang_cb(int uid, vc_config_lang_changed_cb lang_cb); +int vc_config_mgr_set_lang_cb(unsigned int uid, vc_config_lang_changed_cb lang_cb); -int vc_config_mgr_unset_lang_cb(int uid); +int vc_config_mgr_unset_lang_cb(unsigned int uid); -int vc_config_mgr_set_enabled_cb(int uid, vc_config_enabled_cb enabled_cb); +int vc_config_mgr_set_enabled_cb(unsigned int uid, vc_config_enabled_cb enabled_cb); -int vc_config_mgr_unset_enabled_cb(int uid); +int vc_config_mgr_unset_enabled_cb(unsigned int uid); int vc_config_mgr_get_auto_language(bool* value); diff --git a/server/vcd_server.c b/server/vcd_server.c index 486b6cb..853597c 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -45,7 +45,7 @@ static Ecore_Timer *g_check_widget_client_timer = NULL; static Ecore_Timer *g_check_client_timer = NULL; static Ecore_Thread* g_tts_thread = NULL; -static int g_current_uid = -1; +static unsigned int g_current_uid = 0; static int g_current_utt_id = -1; /** @@ -1137,7 +1137,7 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au /* send TTS feedback audio format to VC manager */ int ret = VCD_ERROR_NONE; int pid = g_current_uid / 1000; - if (-1 == g_current_uid || vcd_client_manager_get_pid() == pid) { + if (0 == g_current_uid || vcd_client_manager_get_pid() == pid) { ret = vcdc_send_feedback_audio_format_to_manager(vcd_client_manager_get_pid(), rate, channel, audio_type); if (VCD_ERROR_NONE != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send TTS feedback audio format to VC manager"); @@ -1151,7 +1151,7 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int len) { - if (-1 == g_current_uid && VCE_FEEDBACK_EVENT_START == event) { + if (0 == g_current_uid && VCE_FEEDBACK_EVENT_START == event) { g_current_utt_id = (g_current_utt_id + 1) % 1000; g_current_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; SLOG(LOG_INFO, TAG_VCD, "[Server info] set current uid and utt_id as manager pid(%d)", vcd_client_manager_get_pid()); @@ -1179,7 +1179,7 @@ int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int le if (VCE_FEEDBACK_EVENT_FINISH == event) { /* reset current uid */ - g_current_uid = -1; + g_current_uid = 0; /* Set service state to ready if state is synthesizing */ vcd_state_e state = vcd_config_get_service_state(); @@ -1348,7 +1348,7 @@ int vcd_initialize(vce_request_callback_s *callback) SLOG(LOG_WARN, TAG_VCD, "[Server Warning] Fail to create timer of client check"); } - g_current_uid = -1; + g_current_uid = 0; g_current_utt_id = -1; SLOG(LOG_ERROR, TAG_VCD, "[Server SUCCESS] initialize"); @@ -2684,7 +2684,7 @@ int vcd_server_request_tts(int pid, const char* text, const char* language, int return VCD_ERROR_INVALID_STATE; } - int uid = -1; + unsigned int uid = 0; g_current_utt_id = (g_current_utt_id + 1) % 1000; *utt_id = g_current_utt_id; if (0 == to_vcm) { @@ -2737,7 +2737,7 @@ int vcd_server_cancel_tts(int pid, int utt_id) vc_tts_text_data_s* tts_text_data = NULL; - int uid = pid * 1000 + utt_id; + unsigned int uid = pid * 1000 + utt_id; int ret = vcd_data_get_tts_text_data(uid, &tts_text_data); if (0 != ret) { SLOG(LOG_WARN, TAG_VCD, "[Server WARN] No data in vcd tts text queue"); diff --git a/server/vcd_server_data.cpp b/server/vcd_server_data.cpp index 6f5906e..9cf6da5 100644 --- a/server/vcd_server_data.cpp +++ b/server/vcd_server_data.cpp @@ -51,7 +51,7 @@ static int __data_show_text_list(void) return VCD_ERROR_NONE; } -int vcd_data_add_tts_text_data(int uid, vc_tts_text_data_s* data) +int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data) { if (NULL == data) { SLOG(LOG_ERROR, TAG_VCD, "[DATA ERROR] feedback data is NULL"); @@ -110,7 +110,7 @@ int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data) return VCD_ERROR_NONE; } -int vcd_data_get_tts_text_data(int uid, vc_tts_text_data_s** data) +int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data) { SLOG(LOG_INFO, TAG_VCD, "[DATA] Get tts text data : uid(%d)", uid); diff --git a/server/vcd_server_data.h b/server/vcd_server_data.h index af2f055..86e4ece 100644 --- a/server/vcd_server_data.h +++ b/server/vcd_server_data.h @@ -30,7 +30,7 @@ extern "C" { typedef struct { - int uid; + unsigned int uid; int pid; int utt_id; char* text; @@ -38,11 +38,11 @@ typedef struct { } vc_tts_text_data_s; -int vcd_data_add_tts_text_data(int uid, vc_tts_text_data_s* data); +int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data); int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data); -int vcd_data_get_tts_text_data(int uid, vc_tts_text_data_s** data); +int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data); int vcd_data_get_first_tts_text_data(vc_tts_text_data_s** data); diff --git a/server/vce.c b/server/vce.c index 970f521..5d71383 100644 --- a/server/vce.c +++ b/server/vce.c @@ -127,8 +127,8 @@ static int __vce_check_privilege() return VCE_ERROR_PERMISSION_DENIED; } - char uid[16]; - snprintf(uid, 16, "%d", getuid()); + char uid[32]; + snprintf(uid, 32, "%d", getuid()); ret = true; ret = __check_privilege(uid, VC_PRIVILEGE); __check_privilege_deinitialize(); -- 2.7.4 From e7e10aa04912a7409c6e780eb526b347443c90c7 Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 9 Dec 2021 22:18:59 +0900 Subject: [PATCH 04/16] Update version to 1.65.5 Change-Id: Ie91a2bdc2fb1955f30e1b6f539f794b43edfed4b --- CMakeLists.txt | 2 +- packaging/voice-control.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bfc1247..d997670 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ PROJECT(vc) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "${PREFIX}") -SET(VERSION 1.65.4) +SET(VERSION 1.65.5) FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 6d76313..01b059c 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -1,6 +1,6 @@ Name: voice-control Summary: Voice control client library and daemon -Version: 1.65.4 +Version: 1.65.5 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Apache-2.0 -- 2.7.4 From dc987fa0a92bba6d25ca568581482ac4e1eb5e48 Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 9 Dec 2021 22:18:59 +0900 Subject: [PATCH 05/16] Update version to 1.65.5 Change-Id: Ie91a2bdc2fb1955f30e1b6f539f794b43edfed4b --- CMakeLists.txt | 2 +- packaging/voice-control.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bfc1247..d997670 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ PROJECT(vc) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "${PREFIX}") -SET(VERSION 1.65.4) +SET(VERSION 1.65.5) FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 6d76313..01b059c 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -1,6 +1,6 @@ Name: voice-control Summary: Voice control client library and daemon -Version: 1.65.4 +Version: 1.65.5 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Apache-2.0 -- 2.7.4 From d002857b5037a95bc82e415b231cda87189b00ca Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Thu, 9 Dec 2021 18:32:36 +0900 Subject: [PATCH 06/16] Fix format string and variable name By changing data type of uid, many mismatchess between data of format string and variable are generated. And also, the name 'uid' is used too generally. I may cause misunderstand about the purpose of the variable. To solve this problem, this patch changes the format string to match the variables. And also, this patch changes the name of variable to make name more clear. Change-Id: Id86e57b5ce39589c7c65eeb9106abf8040f6aed6 Signed-off-by: Suyeon Hwang --- common/vc_config_mgr.c | 10 ++++----- common/vc_defs.h | 1 + engine-parser/src/vc-engine-parser.c | 20 ++++++++--------- server/vcd_server.c | 43 ++++++++++++++++++------------------ server/vcd_server_data.cpp | 14 ++++++------ server/vcd_server_data.h | 4 ++-- 6 files changed, 46 insertions(+), 46 deletions(-) diff --git a/common/vc_config_mgr.c b/common/vc_config_mgr.c index cf3bbda..5436e46 100644 --- a/common/vc_config_mgr.c +++ b/common/vc_config_mgr.c @@ -846,7 +846,7 @@ int vc_config_mgr_initialize(unsigned int uid) get_uid = iter->data; if (uid == *get_uid) { - SLOG(LOG_WARN, vc_config_tag(), "[CONFIG] uid(%d) has already registered", uid); + SLOG(LOG_WARN, vc_config_tag(), "[CONFIG] uid(%u) has already registered", uid); pthread_mutex_unlock(&vc_config_mgr_mutex); ecore_thread_main_loop_end(); SLOG(LOG_DEBUG, vc_config_tag(), "[WARNING] Leave critical section"); @@ -872,7 +872,7 @@ int vc_config_mgr_initialize(unsigned int uid) /* Add uid */ g_config_client_list = g_slist_append(g_config_client_list, temp_client); - SLOG(LOG_WARN, vc_config_tag(), "[CONFIG] Add uid(%d) but config has already initialized", uid); + SLOG(LOG_WARN, vc_config_tag(), "[CONFIG] Add uid(%u) but config has already initialized", uid); __vc_config_mgr_print_client_info(); pthread_mutex_unlock(&vc_config_mgr_mutex); @@ -1031,7 +1031,7 @@ int vc_config_mgr_initialize(unsigned int uid) temp_client->lang_cb = NULL; temp_client->enabled_cb = NULL; - SLOG(LOG_DEBUG, vc_config_tag(), "uid(%d) temp_uid(%d)", uid, temp_client->uid); + SLOG(LOG_DEBUG, vc_config_tag(), "uid(%u) temp_uid(%u)", uid, temp_client->uid); /* Add uid */ g_config_client_list = g_slist_append(g_config_client_list, temp_client); @@ -1257,7 +1257,7 @@ int vc_config_mgr_unset_lang_cb(unsigned int uid) int vc_config_mgr_set_enabled_cb(unsigned int uid, vc_config_enabled_cb enabled_cb) { if (NULL == enabled_cb) { - SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] enabled cb is NULL : uid(%d) ", uid); + SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] enabled cb is NULL : uid(%u) ", uid); return VC_CONFIG_ERROR_INVALID_PARAMETER; } @@ -2047,7 +2047,7 @@ int __vc_config_mgr_print_client_info() while (NULL != iter) { temp_client = iter->data; - SLOG(LOG_DEBUG, vc_config_tag(), "[%dth] uid(%d)", i, temp_client->uid); + SLOG(LOG_DEBUG, vc_config_tag(), "[%dth] uid(%u)", i, temp_client->uid); iter = g_slist_next(iter); i++; diff --git a/common/vc_defs.h b/common/vc_defs.h index 21c2e58..2578ba3 100644 --- a/common/vc_defs.h +++ b/common/vc_defs.h @@ -232,6 +232,7 @@ extern "C" { #define VC_RETRY_COUNT 5 #define VC_RUNTIME_INFO_NO_FOREGROUND -1 #define VC_CONNECTION_RETRY_COUNT 10 +#define VC_INVALID_TTS_UID 0 #define VC_FEATURE_PATH "tizen.org/feature/speech.control" #define VC_MGR_FEATURE_PATH "tizen.org/feature/speech.control_manager" diff --git a/engine-parser/src/vc-engine-parser.c b/engine-parser/src/vc-engine-parser.c index 6663375..44d0f8e 100644 --- a/engine-parser/src/vc-engine-parser.c +++ b/engine-parser/src/vc-engine-parser.c @@ -118,7 +118,7 @@ static int __save_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid, gid_t uid_t globalapp_uid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER); uid_t tmp_uid = 0; gid_t tmp_gid = 0; - LOGD("uid(%d)", uid); + LOGD("uid(%u)", uid); if (globalapp_uid == uid) { /* Global app */ @@ -281,7 +281,7 @@ static int __remove_engine_info_xml(const char *pkgid, gchar *ut, uid_t uid) uid_t globalapp_uid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER); - LOGD("uid(%d)", uid); + LOGD("uid(%u)", uid); if (globalapp_uid == uid) { /* Global app */ @@ -404,7 +404,7 @@ EXPORT_API int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList *list) { LOGD("METADATA INSTALL"); - LOGD("pkgid(%s) appid(%s) list(%d)", pkgid, appid, g_list_length(list)); + LOGD("pkgid(%s) appid(%s) list(%u)", pkgid, appid, g_list_length(list)); int ret = -1; ret = pkgmgr_installer_info_get_target_uid(&g_uid); @@ -412,8 +412,8 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList * LOGE("[ERROR] Fail to get target uid"); return 0; } else { - LOGD("uid(%d)", g_uid); - printf("[Parser Debug][DEBUG] uid(%d)", g_uid); + LOGD("uid(%u)", g_uid); + printf("[Parser Debug][DEBUG] uid(%u)", g_uid); } uid_t globalapp_uid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER); @@ -545,7 +545,7 @@ int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgid, const char *appid, GList * LOGD("[DEBUG] user info"); if (NULL != home_dir) { - LOGD("[DEBUG] uid(%d), gid(%d), user_type(%s), home_dir(%s)", uid, gid, user_type, home_dir); + LOGD("[DEBUG] uid(%u), gid(%u), user_type(%s), home_dir(%s)", uid, gid, user_type, home_dir); FREE(g_dir_config_base) FREE(g_dir_home) @@ -672,7 +672,7 @@ EXPORT_API int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList *list) { LOGD("METADATA UNINSTALL"); - LOGD("pkgid(%s) appid(%s) list(%d)", pkgid, appid, g_list_length(list)); + LOGD("pkgid(%s) appid(%s) list(%u)", pkgid, appid, g_list_length(list)); int ret = -1; ret = pkgmgr_installer_info_get_target_uid(&g_uid); @@ -680,8 +680,8 @@ int PKGMGR_MDPARSER_PLUGIN_UNINSTALL(const char *pkgid, const char *appid, GList LOGE("[ERROR] Fail to get target uid"); return 0; } else { - LOGD("uid(%d)", g_uid); - printf("[Parser Debug][DEBUG] uid(%d)", g_uid); + LOGD("uid(%u)", g_uid); + printf("[Parser Debug][DEBUG] uid(%u)", g_uid); } uid_t globalapp_uid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER); @@ -870,7 +870,7 @@ EXPORT_API int PKGMGR_MDPARSER_PLUGIN_UPGRADE(const char *pkgid, const char *appid, GList *list) { LOGD("METADATA UPGRADE"); - LOGD("pkgid(%s) appid(%s) list(%d)", pkgid, appid, g_list_length(list)); + LOGD("pkgid(%s) appid(%s) list(%u)", pkgid, appid, g_list_length(list)); PKGMGR_MDPARSER_PLUGIN_UNINSTALL(pkgid, appid, list); PKGMGR_MDPARSER_PLUGIN_INSTALL(pkgid, appid, list); diff --git a/server/vcd_server.c b/server/vcd_server.c index 853597c..aa2a347 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -45,7 +45,7 @@ static Ecore_Timer *g_check_widget_client_timer = NULL; static Ecore_Timer *g_check_client_timer = NULL; static Ecore_Thread* g_tts_thread = NULL; -static unsigned int g_current_uid = 0; +static unsigned int g_current_tts_uid = VC_INVALID_TTS_UID; static int g_current_utt_id = -1; /** @@ -1132,12 +1132,12 @@ int vcd_send_error(vce_error_e error, const char* msg, void *user_data) /* for TTS feedback */ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_audio_type_e audio_type) { - SLOG(LOG_INFO, TAG_VCD, "[Server DEBUG] Engine - Send TTS feedback audio format, g_current_uid(%d)", g_current_uid); + SLOG(LOG_INFO, TAG_VCD, "[Server DEBUG] Engine - Send TTS feedback audio format, g_current_tts_uid(%u)", g_current_tts_uid); /* send TTS feedback audio format to VC manager */ int ret = VCD_ERROR_NONE; - int pid = g_current_uid / 1000; - if (0 == g_current_uid || vcd_client_manager_get_pid() == pid) { + int pid = g_current_tts_uid / 1000; + if (VC_INVALID_TTS_UID == g_current_tts_uid || vcd_client_manager_get_pid() == pid) { ret = vcdc_send_feedback_audio_format_to_manager(vcd_client_manager_get_pid(), rate, channel, audio_type); if (VCD_ERROR_NONE != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send TTS feedback audio format to VC manager"); @@ -1151,17 +1151,17 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int len) { - if (0 == g_current_uid && VCE_FEEDBACK_EVENT_START == event) { + if (VC_INVALID_TTS_UID == g_current_tts_uid && VCE_FEEDBACK_EVENT_START == event) { g_current_utt_id = (g_current_utt_id + 1) % 1000; - g_current_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; + g_current_tts_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; SLOG(LOG_INFO, TAG_VCD, "[Server info] set current uid and utt_id as manager pid(%d)", vcd_client_manager_get_pid()); } int ret = VCD_ERROR_NONE; - int pid = g_current_uid / 1000; - int utt_id = g_current_uid % 1000; + int pid = g_current_tts_uid / 1000; + int utt_id = g_current_tts_uid % 1000; - SLOG(LOG_INFO, TAG_VCD, "[Server DEBUG] Engine - Send TTS feedback streaming event(%d), uid(%d), is_mgr_client(%d)", event, g_current_uid, (pid == vcd_client_manager_get_pid() ? true : false)); + SLOG(LOG_INFO, TAG_VCD, "[Server DEBUG] Engine - Send TTS feedback streaming event(%d), uid(%u), is_mgr_client(%d)", event, g_current_tts_uid, (pid == vcd_client_manager_get_pid() ? true : false)); if (pid == vcd_client_manager_get_pid()) { /* send TTS feedback streaming to manager client */ @@ -1179,7 +1179,7 @@ int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int le if (VCE_FEEDBACK_EVENT_FINISH == event) { /* reset current uid */ - g_current_uid = 0; + g_current_tts_uid = VC_INVALID_TTS_UID; /* Set service state to ready if state is synthesizing */ vcd_state_e state = vcd_config_get_service_state(); @@ -1348,7 +1348,7 @@ int vcd_initialize(vce_request_callback_s *callback) SLOG(LOG_WARN, TAG_VCD, "[Server Warning] Fail to create timer of client check"); } - g_current_uid = 0; + g_current_tts_uid = VC_INVALID_TTS_UID; g_current_utt_id = -1; SLOG(LOG_ERROR, TAG_VCD, "[Server SUCCESS] initialize"); @@ -2648,19 +2648,18 @@ static void __start_tts_request_thread(void* data, Ecore_Thread* thread) vcd_config_set_service_state(VCD_STATE_SYNTHESIZING); /* Set current uid */ - g_current_uid = tts_text_data->uid; + g_current_tts_uid = tts_text_data->uid; /* Request tts to engine */ ret = vcd_engine_request_tts(tts_text_data->pid, tts_text_data->utt_id, tts_text_data->text, tts_text_data->language); if (0 != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to request tts : %d", ret); } else { - SLOG(LOG_INFO, TAG_VCD, "[Server SUCCESS] request tts, uid(%d) pid(%d), text(%s), language(%s), utt_id(%d)", + SLOG(LOG_INFO, TAG_VCD, "[Server SUCCESS] request tts, uid(%u) pid(%d), text(%s), language(%s), utt_id(%d)", tts_text_data->uid, tts_text_data->pid, tts_text_data->text, tts_text_data->language, tts_text_data->utt_id); } /* clear tts text data after use */ vcd_data_clear_tts_text_data(&tts_text_data); - } } @@ -2684,16 +2683,16 @@ int vcd_server_request_tts(int pid, const char* text, const char* language, int return VCD_ERROR_INVALID_STATE; } - unsigned int uid = 0; + unsigned int tts_uid = VC_INVALID_TTS_UID; g_current_utt_id = (g_current_utt_id + 1) % 1000; *utt_id = g_current_utt_id; if (0 == to_vcm) { - uid = pid * 1000 + g_current_utt_id; + tts_uid = pid * 1000 + g_current_utt_id; } else { - uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; + tts_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; } SLOG(LOG_INFO, TAG_VCD, "[Server INFO] pid(%d), text(%s), language(%s), to_vcm(%d), ", pid, text, language, to_vcm); - SLOG(LOG_INFO, TAG_VCD, "[Server INFO] current_uid(%d), current_utt_id(%d)", uid, g_current_utt_id); + SLOG(LOG_INFO, TAG_VCD, "[Server INFO] current_uid(%u), current_utt_id(%d)", tts_uid, g_current_utt_id); vc_tts_text_data_s* tts_text_data; tts_text_data = (vc_tts_text_data_s*)calloc(1, sizeof(vc_tts_text_data_s)); @@ -2701,13 +2700,13 @@ int vcd_server_request_tts(int pid, const char* text, const char* language, int SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to callocate memory "); return VCD_ERROR_OUT_OF_MEMORY; } - tts_text_data->uid = uid; + tts_text_data->uid = tts_uid; tts_text_data->pid = pid; tts_text_data->utt_id = g_current_utt_id; tts_text_data->text = strdup(text); tts_text_data->language = strdup(language); - int ret = vcd_data_add_tts_text_data(tts_text_data->uid, tts_text_data); + int ret = vcd_data_add_tts_text_data(tts_text_data); if (0 != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to add tts text data : %d", ret); } @@ -2737,8 +2736,8 @@ int vcd_server_cancel_tts(int pid, int utt_id) vc_tts_text_data_s* tts_text_data = NULL; - unsigned int uid = pid * 1000 + utt_id; - int ret = vcd_data_get_tts_text_data(uid, &tts_text_data); + unsigned int tts_uid = pid * 1000 + utt_id; + int ret = vcd_data_get_tts_text_data(tts_uid, &tts_text_data); if (0 != ret) { SLOG(LOG_WARN, TAG_VCD, "[Server WARN] No data in vcd tts text queue"); } else { diff --git a/server/vcd_server_data.cpp b/server/vcd_server_data.cpp index 9cf6da5..7a238aa 100644 --- a/server/vcd_server_data.cpp +++ b/server/vcd_server_data.cpp @@ -40,7 +40,7 @@ static int __data_show_text_list(void) if (!g_tts_text_data.empty()) { std::list::iterator iter; for (iter = g_tts_text_data.begin(); (NULL != *iter && iter != g_tts_text_data.end()); ++iter) { - SLOG(LOG_DEBUG, TAG_VCD, "[%p] uid(%d), pid(%d), utt_id(%d), text(%s), language(%s)", + SLOG(LOG_DEBUG, TAG_VCD, "[%p] uid(%u), pid(%d), utt_id(%d), text(%s), language(%s)", *iter, (*iter)->uid, (*iter)->pid, (*iter)->utt_id, (*iter)->text, (*iter)->language); } } else { @@ -51,7 +51,7 @@ static int __data_show_text_list(void) return VCD_ERROR_NONE; } -int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data) +int vcd_data_add_tts_text_data(vc_tts_text_data_s* data) { if (NULL == data) { SLOG(LOG_ERROR, TAG_VCD, "[DATA ERROR] feedback data is NULL"); @@ -71,7 +71,7 @@ int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data) return VCD_ERROR_OUT_OF_MEMORY; } - SLOG(LOG_ERROR, TAG_VCD, "[DATA][%p] uid(%d), pid(%d), utt_id(%d), text(%s), language(%s)", + SLOG(LOG_ERROR, TAG_VCD, "[DATA][%p] uid(%u), pid(%d), utt_id(%d), text(%s), language(%s)", *iter, (*iter)->uid, (*iter)->pid, (*iter)->utt_id, (*iter)->text, (*iter)->language); #ifdef DATA_DEBUG @@ -88,7 +88,7 @@ int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data) if (!g_tts_text_data.empty()) { if (NULL != *tts_text_data) { - SLOG(LOG_DEBUG, TAG_VCD, "[DEBUG] uid(%d), pid(%d), utt_id(%d), text(%s), language(%s)", + SLOG(LOG_DEBUG, TAG_VCD, "[DEBUG] uid(%u), pid(%d), utt_id(%d), text(%s), language(%s)", (*tts_text_data)->uid, (*tts_text_data)->pid, (*tts_text_data)->utt_id, (*tts_text_data)->text, (*tts_text_data)->language); if (NULL != (*tts_text_data)->text) { @@ -110,9 +110,9 @@ int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data) return VCD_ERROR_NONE; } -int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data) +int vcd_data_get_tts_text_data(unsigned int tts_uid, vc_tts_text_data_s** data) { - SLOG(LOG_INFO, TAG_VCD, "[DATA] Get tts text data : uid(%d)", uid); + SLOG(LOG_INFO, TAG_VCD, "[DATA] Get tts text data : uid(%u)", tts_uid); /* mutex is locked */ pthread_mutex_lock(&g_tts_text_data_mutex); @@ -127,7 +127,7 @@ int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data) std::list::iterator iter; iter = g_tts_text_data.begin(); while (iter != g_tts_text_data.end()) { - if (uid == (*iter)->uid) { + if (tts_uid == (*iter)->uid) { *data = *iter; iter = g_tts_text_data.erase(iter); } else { diff --git a/server/vcd_server_data.h b/server/vcd_server_data.h index 86e4ece..a53e3ca 100644 --- a/server/vcd_server_data.h +++ b/server/vcd_server_data.h @@ -38,11 +38,11 @@ typedef struct { } vc_tts_text_data_s; -int vcd_data_add_tts_text_data(unsigned int uid, vc_tts_text_data_s* data); +int vcd_data_add_tts_text_data(vc_tts_text_data_s* data); int vcd_data_clear_tts_text_data(vc_tts_text_data_s** tts_text_data); -int vcd_data_get_tts_text_data(unsigned int uid, vc_tts_text_data_s** data); +int vcd_data_get_tts_text_data(unsigned int tts_uid, vc_tts_text_data_s** data); int vcd_data_get_first_tts_text_data(vc_tts_text_data_s** data); -- 2.7.4 From 36ab3647abca53b478802bc48f7cee882c191664 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Fri, 10 Dec 2021 16:50:10 +0900 Subject: [PATCH 07/16] Add handle type value when initialize config When client initialize the vc_config_mgr, manager and setting client send the handle with unique type value as a parameter into. This is because the uid can be used to check the type of client when vc_config_mgr needs to identify the client. However, widget client did not add unique value into the handle. Thus, this patch makes the widget client send handle with unique value for widget client. By this change, widget client also works same as other types of client. Change-Id: I3eb28c8a97621dd9809447bd63a79858f7353ef8 Signed-off-by: Suyeon Hwang --- client/vc_widget.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/client/vc_widget.c b/client/vc_widget.c index e5e7be4..92e0951 100644 --- a/client/vc_widget.c +++ b/client/vc_widget.c @@ -188,7 +188,7 @@ int vc_widget_initialize(vc_h* vc_w) } /* TODO - each handle? */ - int ret = vc_config_mgr_initialize((*vc_w)->handle); + int ret = vc_config_mgr_initialize((*vc_w)->handle + VC_WIDGET_CONFIG_HANDLE); if (0 != ret) { SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to init config manager : %s", __vc_widget_get_error_code(__vc_widget_convert_config_error_code(ret))); @@ -197,10 +197,10 @@ int vc_widget_initialize(vc_h* vc_w) return __vc_widget_convert_config_error_code(ret); } - ret = vc_config_mgr_set_lang_cb((*vc_w)->handle, __vc_widget_lang_changed_cb); + ret = vc_config_mgr_set_lang_cb((*vc_w)->handle + VC_WIDGET_CONFIG_HANDLE, __vc_widget_lang_changed_cb); if (0 != ret) { SLOG(LOG_ERROR, TAG_VCW, "[ERROR] Fail to set config changed : %d", ret); - vc_config_mgr_finalize((*vc_w)->handle); + vc_config_mgr_finalize((*vc_w)->handle + VC_WIDGET_CONFIG_HANDLE); vc_widget_client_destroy((*vc_w)); pthread_mutex_unlock(&g_w_init_mutex); return __vc_widget_convert_config_error_code(ret); @@ -313,8 +313,8 @@ int vc_widget_deinitialize(vc_h vc_w) widget->conn_timer = NULL; } - vc_config_mgr_unset_lang_cb(vc_w->handle); - vc_config_mgr_finalize(vc_w->handle); + vc_config_mgr_unset_lang_cb(vc_w->handle + VC_WIDGET_CONFIG_HANDLE); + vc_config_mgr_finalize(vc_w->handle + VC_WIDGET_CONFIG_HANDLE); /* Free resources */ vc_widget_client_destroy(vc_w); -- 2.7.4 From 5b0ca4c3f51d2481992863f491be8d8f3b4c622c Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 27 Dec 2021 14:47:38 +0900 Subject: [PATCH 08/16] Change variable related with uid to unsigned integer Change-Id: Id74b98a2adc21d5e71905203ec5752c11b826abf Signed-off-by: Suyeon Hwang --- client/vc_widget_client.c | 12 ++++++------ common/vc_main.h | 2 +- server/vcd_server.c | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/client/vc_widget_client.c b/client/vc_widget_client.c index 0907406..c18036e 100644 --- a/client/vc_widget_client.c +++ b/client/vc_widget_client.c @@ -21,9 +21,9 @@ #include "voice_control_common.h" /* Max number of handle */ -static const int g_max_handle = 999; +static const unsigned int MAX_NUMBER_OF_HANDLE = 999; /* allocated handle */ -static int g_allocated_handle = 0; +static unsigned int g_allocated_handle = 0; /* widget list */ static GSList *g_widget_list = NULL; @@ -61,16 +61,16 @@ vc_widget_s* widget_get(vc_h vc) return NULL; } -static int __client_generate_uid(int pid) +static unsigned int __client_generate_uid(unsigned int pid) { g_allocated_handle++; - if (g_allocated_handle > g_max_handle) { + if (g_allocated_handle > MAX_NUMBER_OF_HANDLE) { g_allocated_handle = 1; } /* generate uid, handle number should be smaller than 1000 */ - return pid * 1000 + g_allocated_handle; + return pid * 1000u + g_allocated_handle; } int vc_widget_client_create(vc_h* vc) @@ -90,7 +90,7 @@ int vc_widget_client_create(vc_h* vc) return VC_ERROR_OUT_OF_MEMORY; } - temp->handle = __client_generate_uid(getpid()); + temp->handle = __client_generate_uid((unsigned int)getpid()); /* initialize widget data */ widget->vc = temp; diff --git a/common/vc_main.h b/common/vc_main.h index 9ed4128..15e94f9 100644 --- a/common/vc_main.h +++ b/common/vc_main.h @@ -48,7 +48,7 @@ extern "C" { * @brief A structure of handle for identification */ struct vc_s { - int handle; + unsigned int handle; }; typedef struct vc_s *vc_h; diff --git a/server/vcd_server.c b/server/vcd_server.c index aa2a347..f55f33af4 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -1153,7 +1153,7 @@ int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int le { if (VC_INVALID_TTS_UID == g_current_tts_uid && VCE_FEEDBACK_EVENT_START == event) { g_current_utt_id = (g_current_utt_id + 1) % 1000; - g_current_tts_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; + g_current_tts_uid = (unsigned int)vcd_client_manager_get_pid() * 1000u + g_current_utt_id; SLOG(LOG_INFO, TAG_VCD, "[Server info] set current uid and utt_id as manager pid(%d)", vcd_client_manager_get_pid()); } @@ -2687,9 +2687,9 @@ int vcd_server_request_tts(int pid, const char* text, const char* language, int g_current_utt_id = (g_current_utt_id + 1) % 1000; *utt_id = g_current_utt_id; if (0 == to_vcm) { - tts_uid = pid * 1000 + g_current_utt_id; + tts_uid = (unsigned int)pid * 1000u + (unsigned int)g_current_utt_id; } else { - tts_uid = vcd_client_manager_get_pid() * 1000 + g_current_utt_id; + tts_uid = (unsigned int)vcd_client_manager_get_pid() * 1000u + (unsigned int)g_current_utt_id; } SLOG(LOG_INFO, TAG_VCD, "[Server INFO] pid(%d), text(%s), language(%s), to_vcm(%d), ", pid, text, language, to_vcm); SLOG(LOG_INFO, TAG_VCD, "[Server INFO] current_uid(%u), current_utt_id(%d)", tts_uid, g_current_utt_id); @@ -2736,7 +2736,7 @@ int vcd_server_cancel_tts(int pid, int utt_id) vc_tts_text_data_s* tts_text_data = NULL; - unsigned int tts_uid = pid * 1000 + utt_id; + unsigned int tts_uid = (unsigned int)pid * 1000u + (unsigned int)utt_id; int ret = vcd_data_get_tts_text_data(tts_uid, &tts_text_data); if (0 != ret) { SLOG(LOG_WARN, TAG_VCD, "[Server WARN] No data in vcd tts text queue"); -- 2.7.4 From 7eefa39a5fcadd5a783e143227832cea5cb191ce Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 22 Nov 2021 19:32:57 +0900 Subject: [PATCH 09/16] Send error about tts failed to client app Change-Id: Ic7736f0f2381bc873f87da0f8d455b61ebd87d1a Signed-off-by: Suyeon Hwang --- client/vc.c | 18 ++++++++++++++++++ client/vc_client.c | 9 +++++++-- client/vc_client.h | 2 +- client/vc_dbus.c | 25 +++++++++++++++++++++++++ common/vc_defs.h | 1 + server/vcd_dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++ server/vcd_dbus.h | 2 ++ server/vcd_server.c | 16 ++++++++++++---- 8 files changed, 106 insertions(+), 7 deletions(-) diff --git a/client/vc.c b/client/vc.c index 60143a2..f42cc66 100644 --- a/client/vc.c +++ b/client/vc.c @@ -1713,6 +1713,24 @@ int __vc_cb_error(int reason, int daemon_pid, char* msg) return 0; } +int __vc_cb_error_to_app(int pid, int reason, const char* msg) +{ + SLOG(LOG_INFO, TAG_VCC, "[INFO] send error to app(%d)", pid); + + vc_h vc; + if (0 != vc_client_get_handle(pid, &vc)) { + SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Fail to get vc handle"); + return VC_ERROR_INVALID_PARAMETER; + } + + SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Error reason(%d), msg(%s)", reason, msg); + + vc_client_set_error(vc, reason); + ecore_main_loop_thread_safe_call_async(__vc_notify_error, (void*)vc); + + return VC_ERROR_NONE; +} + static void __vc_notify_state_changed(void *data) { vc_h vc = (vc_h)data; diff --git a/client/vc_client.c b/client/vc_client.c index 60194c0..fe116b0 100644 --- a/client/vc_client.c +++ b/client/vc_client.c @@ -164,6 +164,8 @@ int vc_client_create(vc_h* vc) client->is_foreground = false; client->invocation_name = NULL; + SLOG(LOG_INFO, TAG_VCC, "[INFO] client create. uid(%u)", client->uid); + g_client_list = g_slist_append(g_client_list, client); *vc = temp; @@ -246,18 +248,21 @@ bool vc_client_is_valid_by_uid(unsigned int uid) } //LCOV_EXCL_START -int vc_client_get_handle(unsigned int uid, vc_h* vc) +int vc_client_get_handle(int pid, vc_h* vc) { vc_client_s *data = NULL; int count = g_slist_length(g_client_list); int i; + SLOG(LOG_DEBUG, TAG_VCC, "[DEBUG] The number of VC clients(%d)", count); + for (i = 0; i < count; i++) { data = g_slist_nth_data(g_client_list, i); if (NULL != data) { - if (uid == data->vc->handle) { + SLOG(LOG_DEBUG, TAG_VCC, "[DEBUG] pid(%d), handle(%d)", pid, data->vc->handle); + if (pid == data->vc->handle) { *vc = data->vc; return 0; } diff --git a/client/vc_client.h b/client/vc_client.h index 7c22e2c..cfc8d4b 100644 --- a/client/vc_client.h +++ b/client/vc_client.h @@ -40,7 +40,7 @@ bool vc_client_is_valid(vc_h vc); bool vc_client_is_valid_by_uid(unsigned int uid); -int vc_client_get_handle(unsigned int uid, vc_h* vc); +int vc_client_get_handle(int pid, vc_h* vc); /* * set/get callback function diff --git a/client/vc_dbus.c b/client/vc_dbus.c index e41b7ef..05e5bed 100644 --- a/client/vc_dbus.c +++ b/client/vc_dbus.c @@ -31,6 +31,8 @@ static DBusConnection* g_conn_listener = NULL; extern int __vc_cb_error(int reason, int daemon_pid, char* msg); +extern int __vc_cb_error_to_app(int pid, int reason, char* msg); + extern void __vc_cb_result(); extern int __vc_cb_service_state(int state); @@ -163,6 +165,29 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle SLOG(LOG_DEBUG, TAG_VCC, "@@@"); } /* VCD_METHOD_ERROR */ + else if (dbus_message_is_signal(msg, if_name, VCD_METHOD_ERROR_TO_APP)) { + SLOG(LOG_DEBUG, TAG_VCC, "@@@ Get Error and send to client app"); + int pid; + int reason; + char* err_msg; + + dbus_message_get_args(msg, &err, + DBUS_TYPE_INT32, &pid, + DBUS_TYPE_INT32, &reason, + DBUS_TYPE_STRING, &err_msg, + DBUS_TYPE_INVALID); + + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_VCC, "@@ vc Get Error message : Get arguments error (%s)", err.message); + dbus_error_free(&err); + } else { + SLOG(LOG_DEBUG, TAG_VCC, "@@ vc Get Error message : reason(%d), pid(%d), msg(%s)", reason, pid, err_msg); + __vc_cb_error_to_app(pid, reason, err_msg); + } + + SLOG(LOG_DEBUG, TAG_VCC, "@@@"); + } /* VCD_METHOD_ERROR_TO_APP */ + else if (dbus_message_is_method_call(msg, if_name, VCD_METHOD_FEEDBACK_STREAMING)) { SLOG(LOG_INFO, TAG_VCC, "@@@ Get TTS feedback streaming"); int utt_id; diff --git a/common/vc_defs.h b/common/vc_defs.h index 21c2e58..121950e 100644 --- a/common/vc_defs.h +++ b/common/vc_defs.h @@ -82,6 +82,7 @@ extern "C" { #define VCD_METHOD_RESULT "vcd_method_result" #define VCD_METHOD_ERROR "vcd_method_error" +#define VCD_METHOD_ERROR_TO_APP "vcd_method_error_to_app" #define VCD_METHOD_HELLO "vcd_method_hello" #define VCD_METHOD_SET_SERVICE_STATE "vcd_method_set_service_state" #define VCD_METHOD_SEND_MANAGER_PID "vcd_method_send_manager_pid" diff --git a/server/vcd_dbus.c b/server/vcd_dbus.c index 7811988..9ac4f0c 100755 --- a/server/vcd_dbus.c +++ b/server/vcd_dbus.c @@ -864,6 +864,46 @@ int vcdc_send_error_signal(int reason, char *err_msg) return 0; } +int vcdc_send_error_signal_to_app(int pid, int reason, char *err_msg) +{ + if (NULL == err_msg) { + SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Input parameter is NULL"); + return VCD_ERROR_INVALID_PARAMETER; + } + + if (VCD_ERROR_NONE != __dbus_check()) { + return VCD_ERROR_OPERATION_FAILED; + } + + DBusError err; + dbus_error_init(&err); + + SLOG(LOG_ERROR, TAG_VCD, "@@ Send error to app(%d)", pid); + + DBusMessage* msg = __get_message(pid, VCD_METHOD_ERROR_TO_APP, VCD_CLIENT_TYPE_NORMAL); + if (NULL == msg) { + SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Message is NULL"); + return VCD_ERROR_OUT_OF_MEMORY; + } + + dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INT32, &reason, DBUS_TYPE_STRING, &err_msg, DBUS_TYPE_INVALID); + + dbus_message_set_no_reply(msg, TRUE); + + if (TRUE != dbus_connection_send(g_conn_sender, msg, NULL)) { + SLOG(LOG_ERROR, TAG_VCD, "[Dbus ERROR] Fail to Send"); + dbus_message_unref(msg); + return VCD_ERROR_OPERATION_FAILED; + } else { + SLOG(LOG_DEBUG, TAG_VCD, "@@ Send error to app: pid(%d), reason(%d), Error Msg(%s)", pid, reason, err_msg); + dbus_connection_flush(g_conn_sender); + } + + dbus_message_unref(msg); + + return VCD_ERROR_NONE; +} + int vcdc_send_request_set_private_data(int pid, const char* key, const char* data) { if (0 != __dbus_check()) { diff --git a/server/vcd_dbus.h b/server/vcd_dbus.h index a6d97a5..5fd1b7b 100644 --- a/server/vcd_dbus.h +++ b/server/vcd_dbus.h @@ -58,6 +58,8 @@ int vcdc_send_error_signal(int reason, char *err_msg); int vcdc_send_error_signal_to_manager(int manager_pid, int reason, char *err_msg); +int vcdc_send_error_signal_to_app(int pid, int reason, char *err_msg); + int vcdc_send_service_state(vcd_state_e state); int vcdc_send_dialog(int manger_pid, int pid, const char* disp_text, const char* utt_text, int continuous); diff --git a/server/vcd_server.c b/server/vcd_server.c index 853597c..19b3950 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -1114,7 +1114,14 @@ int vcd_send_error(vce_error_e error, const char* msg, void *user_data) } int ret = VCD_ERROR_NONE; - ret = vcdc_send_error_signal_to_manager(vcd_client_manager_get_pid(), error, error_msg); + if (VCE_ERROR_TTS_FAILED == error) { + int pid = g_current_uid / 1000; + ret = vcdc_send_error_signal_to_app(pid, error, error_msg); + } else { + ret = vcdc_send_error_signal_to_manager(vcd_client_manager_get_pid(), error, error_msg); + ecore_main_loop_thread_safe_call_async(__cancel_by_error, NULL); + } + if (VCD_ERROR_NONE != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send error signal"); } @@ -1124,8 +1131,6 @@ int vcd_send_error(vce_error_e error, const char* msg, void *user_data) error_msg = NULL; } - ecore_main_loop_thread_safe_call_async(__cancel_by_error, NULL); - return ret; } @@ -2759,7 +2764,10 @@ int vcd_server_cancel_tts(int pid, int utt_id) SLOG(LOG_INFO, TAG_VCD, "[Server SUCCESS] request tts, pid(%d), utt_id(%d)", pid, utt_id); } - return 0; + /* Set service state */ + vcd_config_set_service_state(VCD_STATE_READY); + + return VCD_ERROR_NONE; } int vcd_server_get_tts_audio_format(int pid, int* rate, int* channel, int* audio_type) -- 2.7.4 From 898a61de2c08ba50ecd84be38be4542b6e53e90f Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 22 Nov 2021 19:50:37 +0900 Subject: [PATCH 10/16] Make function for get pid that requests tts play Change-Id: Ica6e6c058814f06a3e276dc65474d175a21f837a Signed-off-by: Suyeon Hwang --- server/vcd_server.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/server/vcd_server.c b/server/vcd_server.c index 19b3950..fbeab48 100644 --- a/server/vcd_server.c +++ b/server/vcd_server.c @@ -63,6 +63,11 @@ static int __start_internal_recognition(); /* * VC Server Internal Functions */ +static inline int __get_tts_played_pid() +{ + return g_current_uid > 0 ? g_current_uid / 1000 : 0; +} + static Eina_Bool __stop_by_silence(void *data) { SLOG(LOG_INFO, TAG_VCD, "@@@ Silence Detected "); @@ -1115,7 +1120,7 @@ int vcd_send_error(vce_error_e error, const char* msg, void *user_data) int ret = VCD_ERROR_NONE; if (VCE_ERROR_TTS_FAILED == error) { - int pid = g_current_uid / 1000; + int pid = __get_tts_played_pid(); ret = vcdc_send_error_signal_to_app(pid, error, error_msg); } else { ret = vcdc_send_error_signal_to_manager(vcd_client_manager_get_pid(), error, error_msg); @@ -1141,8 +1146,8 @@ int vcd_send_feedback_audio_format(int rate, vce_audio_channel_e channel, vce_au /* send TTS feedback audio format to VC manager */ int ret = VCD_ERROR_NONE; - int pid = g_current_uid / 1000; - if (0 == g_current_uid || vcd_client_manager_get_pid() == pid) { + int pid = __get_tts_played_pid(); + if (0 == pid || vcd_client_manager_get_pid() == pid) { ret = vcdc_send_feedback_audio_format_to_manager(vcd_client_manager_get_pid(), rate, channel, audio_type); if (VCD_ERROR_NONE != ret) { SLOG(LOG_ERROR, TAG_VCD, "[Server ERROR] Fail to send TTS feedback audio format to VC manager"); @@ -1163,7 +1168,7 @@ int vcd_send_feedback_streaming(vce_feedback_event_e event, char* buffer, int le } int ret = VCD_ERROR_NONE; - int pid = g_current_uid / 1000; + int pid = __get_tts_played_pid(); int utt_id = g_current_uid % 1000; SLOG(LOG_INFO, TAG_VCD, "[Server DEBUG] Engine - Send TTS feedback streaming event(%d), uid(%d), is_mgr_client(%d)", event, g_current_uid, (pid == vcd_client_manager_get_pid() ? true : false)); -- 2.7.4 From 0215f6e5cfd3ea859e241c7fcb585f0bf02de026 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Tue, 30 Nov 2021 11:06:53 +0900 Subject: [PATCH 11/16] Unify indentation of enums on vce.h Change-Id: I101f12cea06cfd55a5b1c75fc2cb91982a52a814 Signed-off-by: Suyeon Hwang --- include/vce.h | 70 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/include/vce.h b/include/vce.h index a504a94..e700059 100644 --- a/include/vce.h +++ b/include/vce.h @@ -34,18 +34,18 @@ extern "C" { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - VCE_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of Memory */ - VCE_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */ - VCE_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER,/**< Invalid parameter */ - VCE_ERROR_OUT_OF_NETWORK = TIZEN_ERROR_NETWORK_DOWN, /**< Out of network */ - VCE_ERROR_RECORDER_BUSY = TIZEN_ERROR_RESOURCE_BUSY,/**< Busy resource */ - VCE_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< VC Engine NOT supported */ - VCE_ERROR_INVALID_STATE = TIZEN_ERROR_VOICE_CONTROL | 0x011, /**< Invalid state */ - VCE_ERROR_INVALID_LANGUAGE = TIZEN_ERROR_VOICE_CONTROL | 0x012, /**< Invalid language */ - VCE_ERROR_OPERATION_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x014, /**< Operation failed */ - VCE_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ - VCE_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022, /**< Not supported feature of current engine */ + VCE_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ + VCE_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of Memory */ + VCE_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */ + VCE_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ + VCE_ERROR_OUT_OF_NETWORK = TIZEN_ERROR_NETWORK_DOWN, /**< Out of network */ + VCE_ERROR_RECORDER_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Busy resource */ + VCE_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< VC Engine NOT supported */ + VCE_ERROR_INVALID_STATE = TIZEN_ERROR_VOICE_CONTROL | 0x011, /**< Invalid state */ + VCE_ERROR_INVALID_LANGUAGE = TIZEN_ERROR_VOICE_CONTROL | 0x012, /**< Invalid language */ + VCE_ERROR_OPERATION_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x014, /**< Operation failed */ + VCE_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */ + VCE_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022, /**< Not supported feature of current engine */ VCE_ERROR_TTS_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x024 /**< TTS operation failed (Since 7.0) */ } vce_error_e; @@ -54,8 +54,8 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_AUDIO_TYPE_PCM_S16_LE = 0, /**< Signed 16bit audio type, Little endian */ - VCE_AUDIO_TYPE_PCM_U8 /**< Unsigned 8bit audio type */ + VCE_AUDIO_TYPE_PCM_S16_LE = 0, /**< Signed 16bit audio type, Little endian */ + VCE_AUDIO_TYPE_PCM_U8 /**< Unsigned 8bit audio type */ } vce_audio_type_e; /** @@ -63,9 +63,9 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_RESULT_EVENT_SUCCESS = 0, /**< Event when the recognition full result is ready */ - VCE_RESULT_EVENT_REJECTED, /**< Event when the recognition result is rejected */ - VCE_RESULT_EVENT_ERROR /**< Event when the recognition has failed */ + VCE_RESULT_EVENT_SUCCESS = 0, /**< Event when the recognition full result is ready */ + VCE_RESULT_EVENT_REJECTED, /**< Event when the recognition result is rejected */ + VCE_RESULT_EVENT_ERROR /**< Event when the recognition has failed */ } vce_result_event_e; /** @@ -73,13 +73,13 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_COMMAND_FORMAT_FIXED = 0, /**< Fixed command */ - VCE_COMMAND_FORMAT_FIXED_AND_VFIXED, /**< Fixed command + variable-fixed command */ - VCE_COMMAND_FORMAT_VFIXED_AND_FIXED, /**< variable-fixed command + Fixed command */ - VCE_COMMAND_FORMAT_FIXED_AND_NONFIXED, /**< Fixed command + Non-fixed command */ - VCE_COMMAND_FORMAT_NONFIXED_AND_FIXED, /**< Non-fixed command + Fixed command */ - VCE_COMMAND_FORMAT_ACTION, /**< Action command */ - VCE_COMMAND_FORMAT_PARTIAL /**< Partial matched command */ + VCE_COMMAND_FORMAT_FIXED = 0, /**< Fixed command */ + VCE_COMMAND_FORMAT_FIXED_AND_VFIXED, /**< Fixed command + variable-fixed command */ + VCE_COMMAND_FORMAT_VFIXED_AND_FIXED, /**< variable-fixed command + Fixed command */ + VCE_COMMAND_FORMAT_FIXED_AND_NONFIXED, /**< Fixed command + Non-fixed command */ + VCE_COMMAND_FORMAT_NONFIXED_AND_FIXED, /**< Non-fixed command + Fixed command */ + VCE_COMMAND_FORMAT_ACTION, /**< Action command */ + VCE_COMMAND_FORMAT_PARTIAL /**< Partial matched command */ } vce_command_format_e; /** @@ -87,9 +87,9 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_SPEECH_DETECT_NONE = 0, /**< No event */ - VCE_SPEECH_DETECT_BEGIN, /**< Begin of speech detected */ - VCE_SPEECH_DETECT_END, /**< End of speech detected */ + VCE_SPEECH_DETECT_NONE = 0, /**< No event */ + VCE_SPEECH_DETECT_BEGIN, /**< Begin of speech detected */ + VCE_SPEECH_DETECT_END, /**< End of speech detected */ } vce_speech_detect_e; /** @@ -97,9 +97,9 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_ASR_RESULT_EVENT_FINAL_RESULT = 0, /**< Event when the ASR result is last data or ASR result is only one result */ - VCE_ASR_RESULT_EVENT_PARTIAL_RESULT, /**< Event when the ASR result exist, not first and not last */ - VCE_ASR_RESULT_EVENT_ERROR /**< Event when the ASR result is failed */ + VCE_ASR_RESULT_EVENT_FINAL_RESULT = 0, /**< Event when the ASR result is last data or ASR result is only one result */ + VCE_ASR_RESULT_EVENT_PARTIAL_RESULT, /**< Event when the ASR result exist, not first and not last */ + VCE_ASR_RESULT_EVENT_ERROR /**< Event when the ASR result is failed */ } vce_asr_result_event_e; /** @@ -107,8 +107,8 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_AUDIO_CHANNEL_MONO = 0, /**< 1 channel, mono */ - VCE_AUDIO_CHANNEL_STEREO = 1 /**< 2 channels, stereo */ + VCE_AUDIO_CHANNEL_MONO = 0, /**< 1 channel, mono */ + VCE_AUDIO_CHANNEL_STEREO = 1 /**< 2 channels, stereo */ } vce_audio_channel_e; /** @@ -116,10 +116,10 @@ typedef enum { * @since_tizen @if MOBILE 4.0 @elseif WEARABLE 5.0 @endif */ typedef enum { - VCE_FEEDBACK_EVENT_FAIL = -1, /**< Failed */ - VCE_FEEDBACK_EVENT_START = 1, /**< Start event */ + VCE_FEEDBACK_EVENT_FAIL = -1, /**< Failed */ + VCE_FEEDBACK_EVENT_START = 1, /**< Start event */ VCE_FEEDBACK_EVENT_CONTINUE = 2, /**< Continue event */ - VCE_FEEDBACK_EVENT_FINISH = 3 /**< Finish event */ + VCE_FEEDBACK_EVENT_FINISH = 3 /**< Finish event */ } vce_feedback_event_e; /** -- 2.7.4 From 34bb1a4432861aecb23bf97615193c39a2b06629 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 27 Dec 2021 17:35:37 +0900 Subject: [PATCH 12/16] Update version (1.65.6) Change-Id: Ief5c962460cf35e3396f347ab0aab79fc61a7b2d Signed-off-by: Suyeon Hwang --- CMakeLists.txt | 2 +- packaging/voice-control.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d997670..52965e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ PROJECT(vc) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "${PREFIX}") -SET(VERSION 1.65.5) +SET(VERSION 1.65.6) FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 01b059c..cf89a50 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -1,6 +1,6 @@ Name: voice-control Summary: Voice control client library and daemon -Version: 1.65.5 +Version: 1.65.6 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Apache-2.0 -- 2.7.4 From 6c2ab0d3c7a3b4a430c97cb60b9a84f25182dc24 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Mon, 27 Dec 2021 18:14:39 +0900 Subject: [PATCH 13/16] Update version (1.70.0) Change-Id: I3ff2697cbbb06d9e2fc1dbaa7ab0b5bad473642a Signed-off-by: Suyeon Hwang --- CMakeLists.txt | 2 +- packaging/voice-control.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d997670..fe5746f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ PROJECT(vc) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "${PREFIX}") -SET(VERSION 1.65.5) +SET(VERSION 1.70.0) FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 01b059c..b20f88d 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -1,6 +1,6 @@ Name: voice-control Summary: Voice control client library and daemon -Version: 1.65.5 +Version: 1.70.0 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Apache-2.0 -- 2.7.4 From 5e91052bc28849cccbd94b1e6a5dad8d966e9c57 Mon Sep 17 00:00:00 2001 From: Suyeon Hwang Date: Thu, 6 Jan 2022 20:31:56 +0900 Subject: [PATCH 14/16] Get library name from vconf Current code tries to get full path of dependency module from vconf of system. This means that framework allows to use annonymous library which is installed on any location. However, this behavior might allow to access malicious code and this would become critical problem. To solve this issue, this patch fix that the code gets the file name of library from the vconf. By this patch, all dependency module libraries should be installed predetermined location. The location is read only directory, so malicious code can not be located. Change-Id: I5ab83609229a0fe84b152894b3935d586859c98a Signed-off-by: Suyeon Hwang --- server/dependency_audio_manager.cpp | 12 ++++++------ server/dependency_audio_manager.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/dependency_audio_manager.cpp b/server/dependency_audio_manager.cpp index 8e2f6b0..f10abaa 100644 --- a/server/dependency_audio_manager.cpp +++ b/server/dependency_audio_manager.cpp @@ -41,13 +41,13 @@ int dependency_audio_manager_initialize(sound_stream_info_h stream_info_h, depen const int FILEPATH_LEN = 512; char filepath[FILEPATH_LEN] = {'\0', }; - char *vconf_str = vconf_get_str(VCD_DEPENDENCY_MODULE_PATH); - if (vconf_str) { - snprintf(filepath, FILEPATH_LEN - 1, "%s", vconf_str); - free(vconf_str); + const char *module_directory_path = VCD_DEPENDENCY_MODULE_DIRECTORY_PATH; + char *module_library_name = vconf_get_str(VCD_DEPENDENCY_MODULE_NAME); + if (module_library_name) { + snprintf(filepath, FILEPATH_LEN - 1, "%s/%s", module_directory_path, module_library_name); + free(module_library_name); } else { - const char *default_path = VCD_DEPENDENCY_DEFAULT_PATH; - snprintf(filepath, FILEPATH_LEN - 1, "%s/%s", default_path, VCD_DEPENDENCY_DEFAULT_FILENAME); + snprintf(filepath, FILEPATH_LEN - 1, "%s/%s", module_directory_path, VCD_DEPENDENCY_DEFAULT_FILENAME); } filepath[FILEPATH_LEN - 1] = '\0'; diff --git a/server/dependency_audio_manager.h b/server/dependency_audio_manager.h index 9568379..073ebf4 100644 --- a/server/dependency_audio_manager.h +++ b/server/dependency_audio_manager.h @@ -30,13 +30,13 @@ extern "C" { /************************************************************************************** *** Definitions for dependencies *************************************************************************************/ -#define VCD_DEPENDENCY_DEFAULT_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "voice/vc/1.0/dependency-audio-manager") +#define VCD_DEPENDENCY_MODULE_DIRECTORY_PATH tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "voice/vc/1.0/dependency-audio-manager") #ifdef TV_PRODUCT #define VCD_DEPENDENCY_DEFAULT_FILENAME "libaudio-manager-vd.so" #else #define VCD_DEPENDENCY_DEFAULT_FILENAME "libvc-audio-manager.so" #endif -#define VCD_DEPENDENCY_MODULE_PATH "db/voice/vc/dependency_module_path" +#define VCD_DEPENDENCY_MODULE_NAME "db/voice/vc/dependency_module_name" typedef int (*dependency_audio_manager_feed_audio_data)(const void* data, const unsigned int length); -- 2.7.4 From af4b421226b0e7ce7636b5f381dd5ea46b1503b3 Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 20 Jan 2022 15:31:25 +0900 Subject: [PATCH 15/16] Coverage support for robot profile Change-Id: Ifc880b594a7183e62603ee6801c5bad6465e985b --- packaging/voice-control.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index b20f88d..0c353c1 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -158,8 +158,8 @@ mv -f org.tizen.voice.vcserver.tv.service org.tizen.voice.vcserver.service %make_install %if 0%{?gcov:1} -mkdir -p %{buildroot}%{_datadir}/gcov/obj -install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj +mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name} +install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name} %endif %post -- 2.7.4 From e200b2403672623bd57eeb8942450df548494b16 Mon Sep 17 00:00:00 2001 From: "wn.jang" Date: Thu, 20 Jan 2022 16:33:20 +0900 Subject: [PATCH 16/16] Update version to 1.70.1 Change-Id: I9d3cf3d032bdf59657fbb54729707b5b325f2743 --- CMakeLists.txt | 2 +- packaging/voice-control.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe5746f..1c57109 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ PROJECT(vc) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "${PREFIX}") -SET(VERSION 1.70.0) +SET(VERSION 1.70.1) FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") diff --git a/packaging/voice-control.spec b/packaging/voice-control.spec index 0c353c1..3a6a5f2 100644 --- a/packaging/voice-control.spec +++ b/packaging/voice-control.spec @@ -1,6 +1,6 @@ Name: voice-control Summary: Voice control client library and daemon -Version: 1.70.0 +Version: 1.70.1 Release: 1 Group: Graphics & UI Framework/Voice Framework License: Apache-2.0 -- 2.7.4