Browse Source

Fix Issue #20 - AudioFilterFIR should receive data as read-only blocks

dds
Pete (El Supremo) 10 years ago
parent
commit
28f93925d2
1 changed files with 4 additions and 4 deletions
  1. +4
    -4
      filter_fir.cpp

+ 4
- 4
filter_fir.cpp View File

// do passthru // do passthru
if(coeff_p == FIR_PASSTHRU) { if(coeff_p == FIR_PASSTHRU) {
// Just passthrough // Just passthrough
block = receiveWritable(0);
block = receiveReadOnly(0);
if(block) { if(block) {
transmit(block,0); transmit(block,0);
release(block); release(block);
} }
block = receiveWritable(1);
block = receiveReadOnly(1);
if(block) { if(block) {
transmit(block,1); transmit(block,1);
release(block); release(block);
return; return;
} }
// Left Channel // Left Channel
block = receiveWritable(0);
block = receiveReadOnly(0);
// get a block for the FIR output // get a block for the FIR output
b_new = allocate(); b_new = allocate();
if(block && b_new) { if(block && b_new) {
if(b_new)release(b_new); if(b_new)release(b_new);


// Right Channel // Right Channel
block = receiveWritable(1);
block = receiveReadOnly(1);
b_new = allocate(); b_new = allocate();
if(block && b_new) { if(block && b_new) {
arm_fir_q15(&r_fir_inst, (q15_t *)block->data, (q15_t *)b_new->data, AUDIO_BLOCK_SAMPLES); arm_fir_q15(&r_fir_inst, (q15_t *)block->data, (q15_t *)b_new->data, AUDIO_BLOCK_SAMPLES);

Loading…
Cancel
Save