From 7522900c6365861a3c231f44b5e9a04f31249e0b Mon Sep 17 00:00:00 2001 From: InHong Han Date: Tue, 5 Jul 2022 17:10:31 +0900 Subject: [PATCH] Reduce duplicate code to write buffer Change-Id: Ibb6264f273c5b21321fefc27a6476f37bb7a9bf4 --- client/ma.c | 89 ++++++++++++++++++++++++++------------------------ client/ma_ap.c | 53 ++---------------------------- 2 files changed, 50 insertions(+), 92 deletions(-) diff --git a/client/ma.c b/client/ma.c index 0308d9f..d6f2038 100644 --- a/client/ma.c +++ b/client/ma.c @@ -626,49 +626,8 @@ int __ma_cb_active_state_changed(int state, const char* wakeup_word, return 0; } -int __ma_cb_audio_streaming(int event, char* buffer, int len) +void __write_buffer(int event, char* buffer, int len) { - ma_audio_streaming_cb callback = NULL; - void* user_data; - -#ifdef MA_PREPROCESSING_SEQUENTIAL_MODE - bool preprocessing_result_received = false; - ma_preprocessing_allow_mode_e preprocessing_allow_mode; - ma_audio_streaming_data_type_e audio_streaming_data_type; - ma_client_get_preprocessing_result_received(g_ma, &preprocessing_result_received); - ma_client_get_preprocessing_allow_mode(g_ma, &preprocessing_allow_mode); - ma_client_get_audio_streaming_data_type(g_ma, &audio_streaming_data_type); - - if (MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE == audio_streaming_data_type) { - if (MA_PREPROCESSING_ALLOW_UTTERANCE == preprocessing_allow_mode || - MA_PREPROCESSING_ALLOW_ALL == preprocessing_allow_mode) { - if (!preprocessing_result_received) { - // Save audio data - speech_data data; - data.event = event; - data.buffer = buffer; - data.len = len; - ma_client_push_preprocessing_audio_data(g_ma, &data); - return 0; - } - } - } else if (MA_AUDIO_STREAMING_DATA_TYPE_FOLLOW_UP_SPEECH == audio_streaming_data_type) { - if (MA_PREPROCESSING_ALLOW_FOLLOW_UP == preprocessing_allow_mode || - MA_PREPROCESSING_ALLOW_ALL == preprocessing_allow_mode) { - if (!preprocessing_result_received) { - // Save audio data - speech_data data; - data.event = event; - data.buffer = buffer; - data.len = len; - ma_client_push_preprocessing_audio_data(g_ma, &data); - return 0; - } - } - } -#endif - -#ifdef BUF_SAVE_MODE static char g_temp_file_name[128] = {'\0',}; static FILE* g_pFile = NULL; static int g_count = 1; @@ -719,6 +678,52 @@ int __ma_cb_audio_streaming(int event, char* buffer, int len) MA_LOGE("[Recorder ERROR] File not found!"); //LCOV_EXCL_LINE } } +} + +int __ma_cb_audio_streaming(int event, char* buffer, int len) +{ + ma_audio_streaming_cb callback = NULL; + void* user_data; + +#ifdef MA_PREPROCESSING_SEQUENTIAL_MODE + bool preprocessing_result_received = false; + ma_preprocessing_allow_mode_e preprocessing_allow_mode; + ma_audio_streaming_data_type_e audio_streaming_data_type; + ma_client_get_preprocessing_result_received(g_ma, &preprocessing_result_received); + ma_client_get_preprocessing_allow_mode(g_ma, &preprocessing_allow_mode); + ma_client_get_audio_streaming_data_type(g_ma, &audio_streaming_data_type); + + if (MA_AUDIO_STREAMING_DATA_TYPE_CURRENT_UTTERANCE == audio_streaming_data_type) { + if (MA_PREPROCESSING_ALLOW_UTTERANCE == preprocessing_allow_mode || + MA_PREPROCESSING_ALLOW_ALL == preprocessing_allow_mode) { + if (!preprocessing_result_received) { + // Save audio data + speech_data data; + data.event = event; + data.buffer = buffer; + data.len = len; + ma_client_push_preprocessing_audio_data(g_ma, &data); + return 0; + } + } + } else if (MA_AUDIO_STREAMING_DATA_TYPE_FOLLOW_UP_SPEECH == audio_streaming_data_type) { + if (MA_PREPROCESSING_ALLOW_FOLLOW_UP == preprocessing_allow_mode || + MA_PREPROCESSING_ALLOW_ALL == preprocessing_allow_mode) { + if (!preprocessing_result_received) { + // Save audio data + speech_data data; + data.event = event; + data.buffer = buffer; + data.len = len; + ma_client_push_preprocessing_audio_data(g_ma, &data); + return 0; + } + } + } +#endif + +#ifdef BUF_SAVE_MODE + __write_buffer(event, buffer, len); #endif ma_client_get_audio_streaming_cb(g_ma, &callback, &user_data); diff --git a/client/ma_ap.c b/client/ma_ap.c index 7b3b9ae..de295e6 100644 --- a/client/ma_ap.c +++ b/client/ma_ap.c @@ -42,6 +42,8 @@ static cynara *p_cynara = NULL; static void __ma_ap_notify_error(void* data); +extern void __write_buffer(int event, char* buffer, int len); + //LCOV_EXCL_START static int __ma_ap_get_feature_enabled() { @@ -270,56 +272,7 @@ int __ma_ap_cb_audio_streaming(int event, char* buffer, int len) void* user_data; #ifdef BUF_SAVE_MODE - static char g_temp_file_name[128] = {'\0',}; - static FILE* g_pFile = NULL; - static int g_count = 1; - if (MA_AUDIO_STREAMING_EVENT_START == event) { - if (g_pFile) { - fclose(g_pFile); - g_pFile = NULL; - } else { - MA_LOGD("[Recorder Info] File not found!"); - } - - while (1) { - snprintf(g_temp_file_name, sizeof(g_temp_file_name), "/tmp/ma_%d_%d", getpid(), g_count); - int ret = access(g_temp_file_name, 0); - - if (0 == ret) { - MA_LOGD("[Recorder ERROR] File is already exist"); - if (0 == remove(g_temp_file_name)) { - MA_LOGD("[Recorder] Remove file"); - break; - } else { - g_count++; - } - } else { - break; - } - } - - MA_LOGD("[Recorder] Temp file name=[%s]", g_temp_file_name); - - /* open test file */ - g_pFile = fopen(g_temp_file_name, "wb+x"); - if (!g_pFile) { - MA_LOGD("[Recorder ERROR] File not found!"); - } - g_count++; - } - - if (g_pFile) - fwrite(buffer, 1, len, g_pFile); - - if (MA_AUDIO_STREAMING_EVENT_FINISH == event) { - if (g_pFile) { - MA_LOGE("[Recorder SUCCESS] File Close"); - fclose(g_pFile); - g_pFile = NULL; - } else { - MA_LOGE("[Recorder ERROR] File not found!"); - } - } + __write_buffer(event, buffer, len); #endif ma_ap_client_get_audio_streaming_cb(g_ma_ap, &callback, &user_data); -- 2.34.1