parent
324d2bbef0
commit
f13598b968
@ -1,30 +0,0 @@ |
||||
#include "AudioMixer4_F32.h" |
||||
|
||||
void AudioMixer4_F32::update(void) { |
||||
audio_block_f32_t *in, *out=NULL; |
||||
|
||||
out = receiveWritable_f32(0); |
||||
if (!out) return; |
||||
|
||||
arm_scale_f32(out->data, multiplier[0], out->data, out->length); |
||||
|
||||
for (int channel=1; channel < 4; channel++) { |
||||
in = receiveReadOnly_f32(channel); |
||||
if (!in) { |
||||
continue; |
||||
} |
||||
|
||||
audio_block_f32_t *tmp = allocate_f32(); |
||||
|
||||
arm_scale_f32(in->data, multiplier[channel], tmp->data, tmp->length); |
||||
arm_add_f32(out->data, tmp->data, out->data, tmp->length); |
||||
|
||||
release(tmp); |
||||
release(in); |
||||
} |
||||
|
||||
if (out) { |
||||
transmit(out); |
||||
release(out); |
||||
} |
||||
} |
@ -0,0 +1,60 @@ |
||||
#include "AudioMixer_F32.h" |
||||
|
||||
void AudioMixer4_F32::update(void) { |
||||
audio_block_f32_t *in, *out=NULL; |
||||
|
||||
out = receiveWritable_f32(0); |
||||
if (!out) return; |
||||
|
||||
arm_scale_f32(out->data, multiplier[0], out->data, out->length); |
||||
|
||||
for (int channel=1; channel < 4; channel++) { |
||||
in = receiveReadOnly_f32(channel); |
||||
if (!in) { |
||||
continue; |
||||
} |
||||
|
||||
audio_block_f32_t *tmp = allocate_f32(); |
||||
|
||||
arm_scale_f32(in->data, multiplier[channel], tmp->data, tmp->length); |
||||
arm_add_f32(out->data, tmp->data, out->data, tmp->length); |
||||
|
||||
AudioStream_F32::release(tmp); |
||||
AudioStream_F32::release(in); |
||||
} |
||||
|
||||
if (out) { |
||||
AudioStream_F32::transmit(out); |
||||
AudioStream_F32::release(out); |
||||
} |
||||
} |
||||
|
||||
void AudioMixer8_F32::update(void) { |
||||
audio_block_f32_t *in, *out=NULL; |
||||
|
||||
out = receiveWritable_f32(0); //try to get the first input channel
|
||||
if (!out) return; //if it's not there, return immediately
|
||||
|
||||
arm_scale_f32(out->data, multiplier[0], out->data, out->length); //scale the first input channel
|
||||
|
||||
//load and process the rest of the channels
|
||||
for (int channel=1; channel < 4; channel++) { |
||||
in = receiveReadOnly_f32(channel); |
||||
if (!in) { |
||||
continue; |
||||
} |
||||
|
||||
audio_block_f32_t *tmp = allocate_f32(); |
||||
|
||||
arm_scale_f32(in->data, multiplier[channel], tmp->data, tmp->length); |
||||
arm_add_f32(out->data, tmp->data, out->data, tmp->length); |
||||
|
||||
AudioStream_F32::release(tmp); |
||||
AudioStream_F32::release(in); |
||||
} |
||||
|
||||
if (out) { |
||||
AudioStream_F32::transmit(out); |
||||
AudioStream_F32::release(out); |
||||
} |
||||
} |
Loading…
Reference in new issue