bool connected;
rpc_port_proxy_tts_h rpc_h;
rpc_port_tts_notify_cb_h notify_cb_h;
- int mode;
+ char* engine_app_id;
} tts_tidl_info_s;
static GList* g_tidl_infos = NULL;
SLOG(LOG_INFO, TAG_TTSC, "engine app id : %s", app_id);
}
-static rpc_port_proxy_tts_h __create_rpc_port(int uid, int mode)
+static rpc_port_proxy_tts_h __create_rpc_port(int uid, const char* engine_app_id)
{
- char engine_app_id[256] = {0, };
- __get_engine_app_id(mode, 256, engine_app_id);
-
rpc_port_proxy_tts_callback_s rpc_callback = {
.connected = __on_connected,
.disconnected = __on_disconnected,
}
tts_mode_e mode = tts_client_get_mode(client);
- info->rpc_h = __create_rpc_port(uid, mode);
+ char engine_app_id[256] = {0, };
+ __get_engine_app_id(mode, 256, engine_app_id);
+
+ info->rpc_h = __create_rpc_port(uid, engine_app_id);
if (NULL == info->rpc_h) {
SLOG(LOG_ERROR, TAG_TTSC, "[TIDL ERROR] Fail to create proxy");
free(info);
return TTS_ERROR_OPERATION_FAILED;
}
- info->mode = mode;
+ info->engine_app_id = strdup(engine_app_id);
info->uid = uid;
g_tidl_infos = g_list_append(g_tidl_infos, info);
info->rpc_h = NULL;
info->notify_cb_h = NULL;
+
+ free(info->engine_app_id);
+ info->engine_app_id = NULL;
+
g_tidl_infos = g_list_remove(g_tidl_infos, info);
free(info);
return TTS_ERROR_INVALID_PARAMETER;
}
- if (info->mode != client->mode) {
- SLOG(LOG_INFO, TAG_TTSC, "[TIDL] tts mode is changed from (%d) to (%d)", info->mode, client->mode);
+ tts_mode_e mode = tts_client_get_mode(client);
+ char engine_app_id[256] = {0, };
+ __get_engine_app_id(mode, 256, engine_app_id);
+
+ if (NULL == info->engine_app_id || 0 != strncmp(info->engine_app_id, engine_app_id, strlen(info->engine_app_id))) {
+ SLOG(LOG_INFO, TAG_TTSC, "[TIDL] tts engine is changed from (%s) to (%s)", info->engine_app_id, engine_app_id);
if (0 != rpc_port_proxy_tts_destroy(info->rpc_h)) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to destroy old rpc_port");
return TTS_ERROR_OPERATION_FAILED;
}
- info->rpc_h = __create_rpc_port(uid, client->mode);
+ info->rpc_h = __create_rpc_port(uid, engine_app_id);
if (NULL == info->rpc_h) {
SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to create proxy");
return TTS_ERROR_OPERATION_FAILED;
}
- info->mode = client->mode;
+ free(info->engine_app_id);
+ info->engine_app_id = strdup(engine_app_id);
}
if (!info->connected) {