free(engine->pdfuncs);
free(engine->engine_path);
free(engine);
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
/* engine error check */
ret = engine->pefuncs->initialize(result_cb, silence_cb);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to initialize : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
ret = engine->pefuncs->foreach_langs(__supported_language_cb, (void*)lang_list);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] get language list error : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
return 0;
}
+int stt_engine_set_private_data(int engine_id, const char* key, const char* data)
+{
+ if (NULL == key || NULL == data) {
+ SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Invalid Parameter");
+ return STTP_ERROR_INVALID_PARAMETER;
+ }
+
+ sttengine_s* engine = NULL;
+ engine = __get_engine(engine_id);
+ if (NULL == engine) {
+ SECURE_SLOG(LOG_WARN, stt_tag(), "[Engine WARNING] engine id(%d) is invalid", engine_id);
+ return STTP_ERROR_INVALID_PARAMETER;
+ }
+
+ int ret = engine->pefuncs->set_private_data(key, data);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to set private data(%d)", ret);
+ }
+ return STTP_ERROR_NONE;
+}
+
+int stt_engine_get_private_data(int engine_id, const char* key, char** data)
+{
+ if (NULL == key || NULL == data) {
+ SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Invalid Parameter");
+ return STTP_ERROR_INVALID_PARAMETER;
+ }
+
+ sttengine_s* engine = NULL;
+ engine = __get_engine(engine_id);
+ if (NULL == engine) {
+ SECURE_SLOG(LOG_WARN, stt_tag(), "[Engine WARNING] engine id(%d) is invalid", engine_id);
+ return STTP_ERROR_INVALID_PARAMETER;
+ }
+
+ char* temp = NULL;
+ int ret = engine->pefuncs->get_private_data(key, &temp);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to set private data(%d)", ret);
+ }
+
+ *data = strdup(temp);
+
+ return STTP_ERROR_NONE;
+}
+
int stt_engine_get_first_language(int engine_id, char** language)
{
if (NULL == language) {
ret = engine->pefuncs->foreach_langs(__supported_language_cb, &lang_list);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] get language list error : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
GSList *iter = NULL;
ret = engine->pefuncs->get_audio_format(types, rate, channels);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to get audio format : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
return STTP_ERROR_NOT_SUPPORTED_FEATURE;
} else if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to set silence detection : %d", ret);
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to get app agreement : %s", __stt_get_engine_error_code(ret));
*value = false;
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start recognition : %s", __stt_get_engine_error_code(ret));
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start recognition : lang(%s), recognition_type(%s), credential(%s)", lang, recognition_type, credential);
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->set_recording(data, length);
if (0 != ret) {
SLOG(LOG_WARN, stt_tag(), "[Engine WARNING] Fail to set recording : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->stop();
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to stop : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->cancel();
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to cancel : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->foreach_result_time(time_info, callback, user_data);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to foreach result time : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->start_file(lang, recognition_type, filepath, audio_type, sample_rate, user_param);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start file recognition : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
int ret = engine->pefuncs->cancel_file();
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start file recognition : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
return 0;
-}
\ No newline at end of file
+}