case STTP_ERROR_OUT_OF_MEMORY: return "STTP_ERROR_OUT_OF_MEMORY";
case STTP_ERROR_IO_ERROR: return "STTP_ERROR_IO_ERROR";
case STTP_ERROR_INVALID_PARAMETER: return "STTP_ERROR_INVALID_PARAMETER";
+ case STTP_ERROR_TIMED_OUT: return "STTP_ERROR_TIMED_OUT";
+ case STTP_ERROR_RECORDER_BUSY: return "STTP_ERROR_RECORDER_BUSY";
case STTP_ERROR_OUT_OF_NETWORK: return "STTP_ERROR_OUT_OF_NETWORK";
+ case STTP_ERROR_PERMISSION_DENIED: return "STTP_ERROR_PERMISSION_DENIED";
+ case STTP_ERROR_NOT_SUPPORTED: return "STTP_ERROR_NOT_SUPPORTED";
case STTP_ERROR_INVALID_STATE: return "STTP_ERROR_INVALID_STATE";
case STTP_ERROR_INVALID_LANGUAGE: return "STTP_ERROR_INVALID_LANGUAGE";
+ case STTP_ERROR_ENGINE_NOT_FOUND: return "STTP_ERROR_ENGINE_NOT_FOUND";
case STTP_ERROR_OPERATION_FAILED: return "STTP_ERROR_OPERATION_FAILED";
case STTP_ERROR_NOT_SUPPORTED_FEATURE: return "STTP_ERROR_NOT_SUPPORTED_FEATURE";
default:
free(engine->pdfuncs);
free(engine->engine_path);
free(engine);
- return STTP_ERROR_OPERATION_FAILED;
+ return ret;
}
/* engine error check */
return STTP_ERROR_OPERATION_FAILED;
}
- SECURE_SLOG(LOG_DEBUG, stt_tag(), "[Engine Success] Load engine : version(%d), size(%d)", engine->pefuncs->version, engine->pefuncs->size);
+ SLOG(LOG_DEBUG, stt_tag(), "[Engine Success] Load engine : version(%d), size(%d)", engine->pefuncs->version, engine->pefuncs->size);
g_engine_list = g_slist_append(g_engine_list, engine);
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;
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;
return 0;
}
+
+int stt_engine_need_app_credential(int engine_id, bool* need)
+{
+ if (NULL == need) {
+ 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;
+ }
+
+ bool result;
+ if (NULL != engine->pefuncs->need_app_credential) {
+ result = engine->pefuncs->need_app_credential();
+ *need = result;
+ return STTP_ERROR_NONE;
+ }
+
+ return STTP_ERROR_OPERATION_FAILED;
+}
+
int stt_engine_support_recognition_type(int engine_id, const char* type, bool* support)
{
if (NULL == type || NULL == support) {
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;
}
/* Recognition */
-int stt_engine_recognize_start(int engine_id, const char* lang, const char* recognition_type, void* user_param)
+int stt_engine_recognize_start(int engine_id, const char* lang, const char* recognition_type, const char* credential, void* user_param)
{
if (NULL == lang || NULL == recognition_type) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Invalid Parameter");
return STTP_ERROR_INVALID_PARAMETER;
}
- int ret = engine->pefuncs->start(lang, recognition_type, user_param);
+ int ret = engine->pefuncs->start(lang, recognition_type, credential, user_param);
if (0 != ret) {
SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start recognition : %s", __stt_get_engine_error_code(ret));
- return STTP_ERROR_OPERATION_FAILED;
+ SLOG(LOG_ERROR, stt_tag(), "[Engine ERROR] Fail to start recognition : lang(%s), recognition_type(%s), credential(%s)", lang, recognition_type, credential);
+ 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;