return ret;
}
+static bool play_sound(const char *path, wav_player_playback_completed_cb callback, void *user_data)
+{
+ sound_stream_info_h wav_stream_info_h = NULL;
+ if (SOUND_MANAGER_ERROR_NONE != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) {
+ SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav");
+ return false;
+ }
+
+ int ret = wav_player_start_new(path, wav_stream_info_h, callback, user_data, NULL);
+ if (SOUND_MANAGER_ERROR_NONE != sound_manager_destroy_stream_information(wav_stream_info_h)) {
+ SLOG(LOG_WARN, TAG_STTD, "[Server WARN] Fail to destroy stream info for playing wav");
+ }
+
+ if (WAV_PLAYER_ERROR_NONE != ret) {
+ SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav");
+ return false;
+ }
+
+ return true;
+}
+
+static bool play_start_sound_for_uid(unsigned int uid)
+{
+ char* sound = NULL;
+ if (STTD_ERROR_NONE != sttd_client_get_start_sound(uid, &sound)) {
+ SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start sound");
+ return false;
+ }
+
+ if (NULL == sound) {
+ SLOG(LOG_INFO, TAG_STTD, "[Server] There is no start sound");
+ return false;
+ }
+
+ SLOG(LOG_INFO, TAG_STTD, "[Server] start sound : %s", sound);
+
+ uintptr_t puid = (uintptr_t)uid;
+ bool ret = play_sound(sound, __sttd_start_sound_completed_cb, (void*)puid);
+ free(sound);
+
+ return ret;
+}
+
int sttd_server_start(unsigned int uid, const char* lang, const char* recognition_type, int silence, const char* appid, const char* credential, const char* audio_id)
{
if (NULL == lang || NULL == recognition_type) {
delete_timers_related_to_recording_session();
- char* sound = NULL;
- ret = sttd_client_get_start_sound(uid, &sound);
- if (0 != ret) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start beep sound");
- return ret;
- }
-
ret = sttd_client_set_audio_id(uid, audio_id);
if (0 != ret) {
SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to set audio_id(%s)", audio_id);
- if (NULL != sound) free(sound);
return ret;
}
/* engine start recognition */
SLOG(LOG_INFO, TAG_STTD, "[Server] start : uid(%u), lang(%s), recog_type(%s)",
uid, lang, recognition_type);
- if (NULL != sound)
- SLOG(LOG_INFO, TAG_STTD, "[Server] start sound : %s", sound);
/* 1. Set audio session */
ret = sttd_recorder_set_audio_session();
if (0 != ret) {
stt_client_unset_current_recognition();
SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to set session : %d", ret);
- if (NULL != sound) free(sound);
return ret;
}
- bool is_sound_done = false;
-
/* 2. Request wav play */
- if (NULL != sound) {
- int id = 0;
- uintptr_t puid = (uintptr_t)uid;
- sound_stream_info_h wav_stream_info_h;
- if (0 != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav");
- is_sound_done = true;
- } else {
- ret = wav_player_start_new(sound, wav_stream_info_h, __sttd_start_sound_completed_cb, (void*)puid, &id);
- if (WAV_PLAYER_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav");
- is_sound_done = true;
- }
-
- if (0 != sound_manager_destroy_stream_information(wav_stream_info_h)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to destroy stream info for playing wav");
- }
- }
- free(sound);
- sound = NULL;
- } else {
- is_sound_done = true;
- }
+ bool is_sound_done = play_start_sound_for_uid(uid);
/* 3. Create recorder & engine initialize */
ret = sttd_engine_agent_recognize_start_engine(uid, lang, recognition_type, silence, appid, credential, NULL);
return ret;
}
- if (0 != strcmp(STTE_RECOGNITION_TYPE_FREE_PARTIAL, recognition_type)) {
+ if (STTD_ERROR_NONE != strncmp(STTE_RECOGNITION_TYPE_FREE_PARTIAL, recognition_type, STT_MAX_TYPE_LENGTH)) {
if (NULL == g_processing_timer) {
g_recording_timer = ecore_timer_add(g_recording_timeout, __stop_by_recording_timeout, NULL);
}
return;
}
+static bool play_stop_sound_for_uid(unsigned int uid)
+{
+ char* sound = NULL;
+ if (STTD_ERROR_NONE != sttd_client_get_stop_sound(uid, &sound)) {
+ SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start sound");
+ return false;
+ }
+
+ if (NULL == sound) {
+ SLOG(LOG_INFO, TAG_STTD, "[Server] There is no start sound");
+ return false;
+ }
+
+ SLOG(LOG_INFO, TAG_STTD, "[Server] stop sound : %s", sound);
+
+ uintptr_t puid = (uintptr_t)uid;
+ bool ret = play_sound(sound, __sttd_stop_sound_completed_cb, (void*)puid);
+ free(sound);
+
+ return ret;
+}
+
int sttd_server_stop(unsigned int uid)
{
/* check if uid is valid */
delete_timers_related_to_recording_session();
- char* sound = NULL;
- if (0 != sttd_client_get_stop_sound(uid, &sound)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start beep sound");
- return STTD_ERROR_OPERATION_FAILED;
- }
-
- SLOG(LOG_INFO, TAG_STTD, "[Server] stop sound path : %s", sound);
-
int ret;
/* 1. Stop recorder */
ret = sttd_engine_agent_recognize_stop_recorder();
if (0 != sttd_engine_agent_recognize_cancel()) {
SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel recognize");
}
- if (NULL != sound) free(sound);
return ret;
}
/* 2. Request wav play */
- if (NULL != sound) {
- int id = 0;
- uintptr_t puid = (uintptr_t)uid;
- sound_stream_info_h wav_stream_info_h;
- if (0 != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav");
- } else {
- ret = wav_player_start_new(sound, wav_stream_info_h, __sttd_stop_sound_completed_cb, (void*)puid, &id);
- if (WAV_PLAYER_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav");
- } else {
- SLOG(LOG_DEBUG, TAG_STTD, "[Server] Play wav : %s", sound);
- }
-
- if (0 != sound_manager_destroy_stream_information(wav_stream_info_h)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to destroy stream info for playing wav");
- }
- }
- free(sound);
- } else {
- SLOG(LOG_INFO, TAG_STTD, "[Server] No sound play");
+ if (false == play_stop_sound_for_uid(uid)) {
+ SLOG(LOG_INFO, TAG_STTD, "[Server] No stop sound play");
/* Unset audio session */
ret = sttd_recorder_unset_audio_session();
return STTD_ERROR_NONE;
}
-static bool play_sound(const char *path, wav_player_playback_completed_cb callback, void *user_data)
-{
- sound_stream_info_h wav_stream_info_h = NULL;
- if (SOUND_MANAGER_ERROR_NONE != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav");
- return false;
- }
-
- int ret = wav_player_start_new(path, wav_stream_info_h, callback, user_data, NULL);
- if (SOUND_MANAGER_ERROR_NONE != sound_manager_destroy_stream_information(wav_stream_info_h)) {
- SLOG(LOG_WARN, TAG_STTD, "[Server WARN] Fail to destroy stream info for playing wav");
- }
-
- if (WAV_PLAYER_ERROR_NONE != ret) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav");
- return false;
- }
-
- return true;
-}
-
-static bool play_start_sound_for_uid(unsigned int uid)
-{
- char* sound = NULL;
- if (STTD_ERROR_NONE != sttd_client_get_start_sound(uid, &sound)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start sound");
- return false;
- }
-
- if (NULL == sound) {
- SLOG(LOG_INFO, TAG_STTD, "[Server] There is no start sound");
- return false;
- }
-
- SLOG(LOG_INFO, TAG_STTD, "[Server] start sound : %s", sound);
- bool ret = play_sound(sound, NULL, NULL);
- free(sound);
-
- return ret;
-}
-
int sttd_server_start_audio_streaming(unsigned int uid, const char* lang, const char* recognition_type, int silence, const char* appid, const char* credential, const char* audio_id)
{
if (NULL == lang || NULL == recognition_type) {
/* engine start recognition */
SLOG(LOG_INFO, TAG_STTD, "[Server] start : uid(%u), lang(%s), recog_type(%s)", uid, lang, recognition_type);
- play_start_sound_for_uid(uid);
-
/* 3. Create recorder & engine initialize */
ret = sttd_engine_agent_recognize_start_engine(uid, lang, recognition_type, silence, appid, credential, NULL);
if (STTD_ERROR_NONE != ret) {
return ret;
}
- if (STTD_ERROR_NONE != strcmp(STTE_RECOGNITION_TYPE_FREE_PARTIAL, recognition_type)) {
+ if (STTD_ERROR_NONE != strncmp(STTE_RECOGNITION_TYPE_FREE_PARTIAL, recognition_type, STT_MAX_TYPE_LENGTH)) {
if (NULL == g_processing_timer) {
g_recording_timer = ecore_timer_add(g_recording_timeout, __stop_by_recording_timeout, NULL);
}
return STTD_ERROR_NONE;
}
-static bool play_stop_sound_for_uid(unsigned int uid)
-{
- char* sound = NULL;
- if (STTD_ERROR_NONE != sttd_client_get_stop_sound(uid, &sound)) {
- SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start sound");
- return false;
- }
-
- if (NULL == sound) {
- SLOG(LOG_INFO, TAG_STTD, "[Server] There is no start sound");
- return false;
- }
-
- SLOG(LOG_INFO, TAG_STTD, "[Server] stop sound : %s", sound);
- bool ret = play_sound(sound, NULL, NULL);
- free(sound);
-
- return ret;
-}
-
int sttd_server_stop_audio_streaming(unsigned int uid)
{
/* check if uid is valid */
delete_timers_related_to_recording_session();
- /* 2. Request wav play */
- play_stop_sound_for_uid(uid);
-
/* Stop engine */
int ret = sttd_engine_agent_recognize_stop_engine();
if (0 != ret) {