diff --git a/AudioMultiply_F32.cpp b/AudioMultiply_F32.cpp new file mode 100644 index 0000000..edca399 --- /dev/null +++ b/AudioMultiply_F32.cpp @@ -0,0 +1,20 @@ +#include "AudioMultiply_F32.h" + +void AudioMultiply_F32::update(void) { + audio_block_f32_t *block, *in; + + block = AudioStream_F32::receiveWritable_f32(0); + if (!block) return; + + in = AudioStream_F32::receiveReadOnly_f32(1); + if (!in) { + release(block); + return; + } + + arm_mult_f32(block->data, in->data, block->data, AUDIO_BLOCK_SAMPLES); + release(in); + + transmit(block); + release(block); +} diff --git a/AudioMultiply_F32.h b/AudioMultiply_F32.h new file mode 100644 index 0000000..08a2584 --- /dev/null +++ b/AudioMultiply_F32.h @@ -0,0 +1,12 @@ +#include +#include + +class AudioMultiply_F32 : public AudioStream_F32 +{ + public: + AudioMultiply_F32(void) : AudioStream_F32(2, inputQueueArray_f32) {}; + void update(void); + + private: + audio_block_f32_t *inputQueueArray_f32[2]; +};