From 175c9f5b8ffdf6ae3a598f278938ba1f94b6f44c Mon Sep 17 00:00:00 2001 From: Chip Audette Date: Wed, 15 Feb 2017 22:44:27 -0500 Subject: [PATCH] Clarifying record_queue_f32 --- AudioConvert_F32.h | 15 ++++++++++----- record_queue_f32.cpp | 14 +++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/AudioConvert_F32.h b/AudioConvert_F32.h index 426886a..8fd82e9 100644 --- a/AudioConvert_F32.h +++ b/AudioConvert_F32.h @@ -2,7 +2,6 @@ #ifndef _AudioConvert_I16toF32_h #define _AudioConvert_I16toF32_h - #include class AudioConvert_I16toF32 : public AudioStream_F32 //receive Int and transmits Float @@ -10,16 +9,19 @@ class AudioConvert_I16toF32 : public AudioStream_F32 //receive Int and transmits //GUI: inputs:1, outputs:1 //this line used for automatic generation of GUI node public: AudioConvert_I16toF32(void) : AudioStream_F32(1, inputQueueArray_f32) { }; - void update(void) { + void update(void) { //get the Int16 block audio_block_t *int_block; int_block = AudioStream::receiveReadOnly(); //int16 data block - if (!int_block) return; + if (int_block==NULL) return; //allocate a float block audio_block_f32_t *float_block; float_block = AudioStream_F32::allocate_f32(); - if (float_block == NULL) return; + if (float_block == NULL) { + AudioStream::release(int_block); + return; + } //convert to float convertAudio_I16toF32(int_block, float_block, AUDIO_BLOCK_SAMPLES); @@ -57,7 +59,10 @@ class AudioConvert_F32toI16 : public AudioStream_F32 //receive Float and transmi //allocate a Int16 block audio_block_t *int_block; int_block = AudioStream::allocate(); - if (int_block == NULL) return; + if (int_block == NULL) { + AudioStream_F32::release(float_block); + return; + } //convert back to int16 convertAudio_F32toI16(float_block, int_block, AUDIO_BLOCK_SAMPLES); diff --git a/record_queue_f32.cpp b/record_queue_f32.cpp index bc55cc2..96e67ca 100644 --- a/record_queue_f32.cpp +++ b/record_queue_f32.cpp @@ -43,13 +43,13 @@ void AudioRecordQueue_F32::clear(void) uint32_t t; if (userblock) { - release(userblock); + AudioStream_F32::release(userblock); userblock = NULL; } t = tail; while (t != head) { if (++t >= 53) t = 0; - release(queue[t]); + AudioStream_F32::release(queue[t]); } tail = t; } @@ -72,7 +72,7 @@ audio_block_f32_t * AudioRecordQueue_F32::getAudioBlock(void) { uint32_t t; - if (userblock) return NULL; + if (userblock != NULL) return NULL; t = tail; if (t == head) return NULL; if (++t >= 53) t = 0; @@ -84,7 +84,7 @@ audio_block_f32_t * AudioRecordQueue_F32::getAudioBlock(void) void AudioRecordQueue_F32::freeBuffer(void) { if (userblock == NULL) return; - release(userblock); + AudioStream_F32::release(userblock); userblock = NULL; } @@ -98,15 +98,15 @@ void AudioRecordQueue_F32::update(void) uint32_t h; block = receiveReadOnly_f32(); - if (!block) return; + if (block==NULL) return; if (!enabled) { - release(block); + AudioStream_F32::release(block); return; } h = head + 1; if (h >= 53) h = 0; if (h == tail) { - release(block); + AudioStream_F32::release(block); } else { queue[h] = block; head = h;