Reduce duplicate code to write buffer 42/277342/3
authorInHong Han <inhong1.han@samsung.com>
Tue, 5 Jul 2022 08:10:31 +0000 (17:10 +0900)
committerInHong Han <inhong1.han@samsung.com>
Mon, 11 Jul 2022 08:20:55 +0000 (17:20 +0900)
Change-Id: Ibb6264f273c5b21321fefc27a6476f37bb7a9bf4

client/ma.c
client/ma_ap.c

index 0308d9fa678af118273084815ce40af6989f9db1..d6f20387c9e4bcdad1f3d0830cf4e6133b8aff86 100644 (file)
@@ -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);
index 7b3b9ae8b093ec125410ef540797134ae6e35776..de295e6302023cb1797cd70fc0db85632588646f 100644 (file)
@@ -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);