audio: hal_play_test: Changes to terminate the qap playback on signal

Added changes to terminate safely when sig interrupt is raised in QAP
playback path

Change-Id: I03acc49512c247ac4d25bdf531670ca77cf697ed
diff --git a/qahw_api/test/qap_wrapper_extn.c b/qahw_api/test/qap_wrapper_extn.c
index 4c35711..d9f27d4 100644
--- a/qahw_api/test/qap_wrapper_extn.c
+++ b/qahw_api/test/qap_wrapper_extn.c
@@ -62,6 +62,7 @@
 #define DEFAULT_SAMPLE_RATE 48000
 #define MAX_QAP_MODULE_OUT 3
 
+extern bool stop_playback;
 bool is_media_fmt_changed[MAX_QAP_MODULE_OUT];
 int new_output_conf_index = 0;
 
@@ -1491,9 +1492,12 @@
         buffer->common_params.offset = 0;
         buffer->common_params.size = bytes_read;
         memcpy(buffer->common_params.data, data_buf, bytes_read);
-        if (bytes_read <= 0) {
+        if (bytes_read <= 0 || stop_playback) {
             buffer->buffer_parms.input_buf_params.flags = QAP_BUFFER_EOS;
             bytes_consumed = qap_module_process(qap_module_handle, buffer);
+            if (stop_playback)
+                qap_module_cmd(qap_module_handle, QAP_MODULE_CMD_FLUSH, sizeof(QAP_MODULE_CMD_FLUSH), NULL, NULL, NULL);
+
             ret = qap_module_cmd(qap_module_handle, QAP_MODULE_CMD_STOP, sizeof(QAP_MODULE_CMD_STOP), NULL, NULL, NULL);
             fprintf(stdout, "Stopped feeding input %s : %p\n", stream_info->filename, fp_input);
             ALOGV("Stopped feeding input %s : %p", stream_info->filename, fp_input);
@@ -1546,7 +1550,7 @@
                     }
                 }
             }
-        } while (buffer->common_params.size > 0);
+        } while (buffer->common_params.size > 0 && !stop_playback);
         if (reply_data)
             free(reply_data);
         buffer->common_params.data = temp_ptr;