}
//LCOV_EXCL_STOP
-void __tts_unset_all_callbacks(tts_h tts)
-{
- SLOG(LOG_INFO, TAG_TTSC, "@@@ unset all callbacks");
-
- tts_unset_state_changed_cb(tts);
- tts_unset_utterance_started_cb(tts);
- tts_unset_utterance_completed_cb(tts);
- tts_unset_error_cb(tts);
- tts_unset_default_voice_changed_cb(tts);
- tts_unset_engine_changed_cb(tts);
-
- SLOG(LOG_DEBUG, TAG_TTSC, "@@@");
-}
-
int tts_create(tts_h* tts)
{
if (0 != __tts_get_feature_enabled()) {
tts_config_mgr_finalize(client->uid);
+ // TODO: move into tts_client
if (client->hello_timer) {
ecore_timer_del(client->hello_timer);
client->hello_timer = NULL;
case TTS_STATE_PAUSED:
case TTS_STATE_PLAYING:
case TTS_STATE_READY:
+ // TODO: fix to core_unprepare
ret = __tts_recheck_screen_reader();
if (0 != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get screen reader(%d)", ret);
case TTS_STATE_CREATED:
/* Unset registered callbacks */
- __tts_unset_all_callbacks(tts);
+ tts_client_unset_all_cb(client);
int thread_count = ecore_thread_active_get();
SLOG(LOG_INFO, TAG_TTSC, "[INFO] Active thread count: %d", thread_count);
thread_count = ecore_thread_active_get();
}
- /* Delete state timer before destroying handle */
- if (NULL != client->notify_state_timer) {
- ecore_timer_del(client->notify_state_timer);
- client->notify_state_timer = NULL;
- }
- /* Delete error timer before destroying handle */
- if (NULL != client->notify_error_timer) {
- ecore_timer_del(client->notify_error_timer);
- client->notify_error_timer = NULL;
- }
-
/* Free resources */
tts_client_destroy(tts);
return __tts_convert_config_error_code(ret);
}
- client->supported_voice_cb = callback;
- client->supported_voice_user_data = user_data;
+ tts_client_set_supported_voice_cb(client, callback, user_data);
ret = tts_config_mgr_get_voice_list(current_engine, __tts_supported_voice_cb, client);
+ tts_client_set_supported_voice_cb(client, NULL, NULL);
if (NULL != current_engine) {
free(current_engine);
current_engine = NULL;
}
- client->supported_voice_cb = NULL;
- client->supported_voice_user_data = NULL;
-
if (0 != ret) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Result : %d", ret);
ret = TTS_ERROR_OPERATION_FAILED;
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set state changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set state changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set state changed cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set state changed cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->state_changed_cb = callback;
- client->state_changed_user_data = user_data;
+ tts_client_set_state_changed_cb(client, callback, user_data);
SLOG(LOG_INFO, TAG_TTSC, "[SUCCESS] Set state changed cb");
-
return 0;
}
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset state changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset state changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->state_changed_cb = NULL;
- client->state_changed_user_data = NULL;
-
- if (NULL != client->notify_state_timer) {
- ecore_timer_del(client->notify_state_timer);
- client->notify_state_timer = NULL;
- }
+ tts_client_set_state_changed_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset state changed cb");
-
return 0;
}
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt started cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt started cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt started cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt started cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->utt_started_cb = callback;
- client->utt_started_user_data = user_data;
+ tts_client_set_utterance_started_cb(client, callback, user_data);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set utt started cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset utt started cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset utt started cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->utt_started_cb = NULL;
- client->utt_started_user_data = NULL;
+ tts_client_set_utterance_started_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset utt started cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt completed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt completed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt completed cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set utt completed cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->utt_completed_cb = callback;
- client->utt_completed_user_data = user_data;
+ tts_client_set_utterance_completed_cb(client, callback, user_data);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set utt completed cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset utt completed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset utt completed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->utt_completed_cb = NULL;
- client->utt_completed_user_data = NULL;
+ tts_client_set_utterance_completed_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset utt completed cb");
return 0;
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set error cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set error cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set error cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set error cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->error_cb = callback;
- client->error_user_data = user_data;
+ tts_client_set_error_cb(client, callback, user_data);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set error cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset error cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset error cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->error_cb = NULL;
- client->error_user_data = NULL;
-
- if (NULL != client->notify_error_timer) {
- ecore_timer_del(client->notify_error_timer);
- client->notify_error_timer = NULL;
- }
+ tts_client_set_error_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset error cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set default voice changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set default voice changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set default voice changed cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set default voice changed cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->default_voice_changed_cb = callback;
- client->default_voice_changed_user_data = user_data;
+ tts_client_set_default_voice_changed_cb(client, callback, user_data);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set default voice changed cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset default voice changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset default voice changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->default_voice_changed_cb = NULL;
- client->default_voice_changed_user_data = NULL;
+ tts_client_set_default_voice_changed_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset default voice changed cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts || NULL == callback) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set engine changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set engine changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
}
+ if (NULL == callback) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set engine changed cb : Input parameter is null");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
if (TTS_STATE_CREATED != client->current_state) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Set engine changed cb : Current state is not 'Created'.");
return TTS_ERROR_INVALID_STATE;
}
- client->engine_changed_cb = callback;
- client->engine_changed_user_data = user_data;
+ tts_client_set_engine_changed_cb(client, callback, user_data);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Set engine changed cb");
return TTS_ERROR_NOT_SUPPORTED;
}
- if (NULL == tts) {
- SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset engine changed cb : Input parameter is null");
- return TTS_ERROR_INVALID_PARAMETER;
- }
-
+ /* check handle */
tts_client_s* client = tts_client_get(tts);
-
if (NULL == client) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Unset engine changed cb : A handle is not valid");
return TTS_ERROR_INVALID_PARAMETER;
return TTS_ERROR_INVALID_STATE;
}
- client->engine_changed_cb = NULL;
- client->engine_changed_user_data = NULL;
+ tts_client_set_engine_changed_cb(client, NULL, NULL);
SLOG(LOG_DEBUG, TAG_TTSC, "[SUCCESS] Unset engine changed cb");
return uid;
}
+static inline void __set_state_changed_cb(tts_client_s* client, tts_state_changed_cb callback, void* user_data)
+{
+ client->state_changed_cb = callback;
+ client->state_changed_user_data = user_data;
+}
+
+static inline void __set_utterance_started_cb(tts_client_s* client, tts_utterance_started_cb callback, void* user_data)
+{
+ client->utt_started_cb = callback;
+ client->utt_started_user_data = user_data;
+}
+
+static inline void __set_utterance_completed_cb(tts_client_s* client, tts_utterance_completed_cb callback, void* user_data)
+{
+ client->utt_completed_cb = callback;
+ client->utt_completed_user_data = user_data;
+}
+
+static inline void __set_error_cb(tts_client_s* client, tts_error_cb callback, void* user_data)
+{
+ client->error_cb = callback;
+ client->error_user_data = user_data;
+}
+
+static inline void __set_default_voice_changed_cb(tts_client_s* client, tts_default_voice_changed_cb callback, void* user_data)
+{
+ client->default_voice_changed_cb = callback;
+ client->default_voice_changed_user_data = user_data;
+}
+
+static inline void __set_engine_changed_cb(tts_client_s* client, tts_engine_changed_cb callback, void* user_data)
+{
+ client->engine_changed_cb = callback;
+ client->engine_changed_user_data = user_data;
+}
+
+static inline void __set_supported_voice_cb(tts_client_s* client, tts_supported_voice_cb callback, void* user_data)
+{
+ client->supported_voice_cb = callback;
+ client->supported_voice_user_data = user_data;
+}
+
int tts_client_new(tts_h* tts)
{
tts_client_s* client = NULL;
return copy_list;
}
//LCOV_EXCL_STOP
+
+void tts_client_set_state_changed_cb(tts_client_s* client, tts_state_changed_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+
+ if (NULL == callback) {
+ if (NULL != client->notify_state_timer) {
+ ecore_timer_del(client->notify_state_timer);
+ client->notify_state_timer = NULL;
+ }
+ }
+ __set_state_changed_cb(client, callback, user_data);
+}
+
+void tts_client_set_utterance_started_cb(tts_client_s* client, tts_utterance_started_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+ __set_utterance_started_cb(client, callback, user_data);
+}
+
+void tts_client_set_utterance_completed_cb(tts_client_s* client, tts_utterance_completed_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+ __set_utterance_completed_cb(client, callback, user_data);
+}
+
+void tts_client_set_error_cb(tts_client_s* client, tts_error_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+
+ if (NULL == callback) {
+ if (NULL != client->notify_error_timer) {
+ ecore_timer_del(client->notify_error_timer);
+ client->notify_error_timer = NULL;
+ }
+ }
+ __set_error_cb(client, callback, user_data);
+}
+
+void tts_client_set_default_voice_changed_cb(tts_client_s* client, tts_default_voice_changed_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+ __set_default_voice_changed_cb(client, callback, user_data);
+}
+
+void tts_client_set_engine_changed_cb(tts_client_s* client, tts_engine_changed_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+ __set_engine_changed_cb(client, callback, user_data);
+}
+
+void tts_client_set_supported_voice_cb(tts_client_s* client, tts_supported_voice_cb callback, void* user_data)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+ __set_supported_voice_cb(client, callback, user_data);
+}
+
+void tts_client_unset_all_cb(tts_client_s* client)
+{
+ if (NULL == client || false == tts_client_is_valid(client->tts)) {
+ return;
+ }
+
+ if (NULL != client->notify_state_timer) {
+ ecore_timer_del(client->notify_state_timer);
+ client->notify_state_timer = NULL;
+ }
+
+ if (NULL != client->notify_error_timer) {
+ ecore_timer_del(client->notify_error_timer);
+ client->notify_error_timer = NULL;
+ }
+
+ __set_state_changed_cb(client, NULL, NULL);
+ __set_utterance_started_cb(client, NULL, NULL);
+ __set_utterance_completed_cb(client, NULL, NULL);
+ __set_error_cb(client, NULL, NULL);
+ __set_default_voice_changed_cb(client, NULL, NULL);
+ __set_engine_changed_cb(client, NULL, NULL);
+ __set_supported_voice_cb(client, NULL, NULL);
+}
\ No newline at end of file