|
@@ -170,27 +170,30 @@ static audiostream_vtbl_t g_stream_vtbl = {
|
|
|
void audiomicspklinux_destroy(audiomicspklinux_t* micspk)
|
|
|
{
|
|
|
sem_post(micspk->audio_device_started_sem);
|
|
|
- audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d", __FUNCTION__, __LINE__);
|
|
|
+
|
|
|
if (micspk->ply_stream) {
|
|
|
Pa_AbortStream(micspk->ply_stream);
|
|
|
Pa_CloseStream(micspk->ply_stream);
|
|
|
}
|
|
|
|
|
|
- if (micspk->rec_stream) {
|
|
|
- Pa_AbortStream(micspk->rec_stream);
|
|
|
- Pa_CloseStream(micspk->rec_stream);
|
|
|
+ if (false == micspk->baudio_from_shm_flag){
|
|
|
+ if (micspk->rec_stream) {
|
|
|
+ Pa_AbortStream(micspk->rec_stream);
|
|
|
+ Pa_CloseStream(micspk->rec_stream);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (micspk->ply_dbuf)
|
|
|
delay_buf_destroy((delay_buf*)micspk->ply_dbuf);
|
|
|
+
|
|
|
if (micspk->rec_dbuf)
|
|
|
delay_buf_destroy((delay_buf*)micspk->rec_dbuf);
|
|
|
+
|
|
|
if (micspk->opt & AMS_OPT_AS_ENGINE) {
|
|
|
//DeleteCriticalSection(&micspk->engine_lock);
|
|
|
}
|
|
|
sem_destroy(micspk->audio_device_started_sem);
|
|
|
|
|
|
- audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d", __FUNCTION__, __LINE__);
|
|
|
//fclose(micspk->pcmfile);
|
|
|
//fclose(micspk->putpcmfile);
|
|
|
//fclose(micspk->highhzpcmFile);
|
|
@@ -317,9 +320,11 @@ static void uninitialize_speaker(audiomicspklinux_t* micspk)
|
|
|
|
|
|
static void uninitialize_micro(audiomicspklinux_t* micspk)
|
|
|
{
|
|
|
- if (micspk->rec_stream) {
|
|
|
- Pa_AbortStream(micspk->rec_stream);
|
|
|
- Pa_CloseStream(micspk->rec_stream);
|
|
|
+ if (false == micspk->baudio_device_started_flag){
|
|
|
+ if (micspk->rec_stream) {
|
|
|
+ Pa_AbortStream(micspk->rec_stream);
|
|
|
+ Pa_CloseStream(micspk->rec_stream);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (micspk->rec_dbuf) {
|