mic buffering now uses select

This commit is contained in:
Ross Owen
2016-04-19 15:47:15 +01:00
parent 8a26f42a85
commit 89c3854707

View File

@@ -71,36 +71,40 @@ void pdm_process(streaming chanend c_ds_output[2], chanend c_audio
#else #else
user_pdm_process(current, output); user_pdm_process(current, output);
#endif #endif
int loop =1;
while(1) while(loop)
{ {
unsafe unsafe
{ {
int req; int req;
c_audio :> req; select
if(req)
{ {
for(int i = 0; i < NUM_PDM_MICS; i++) case c_audio :> req:
{ if(req)
c_audio <: output[i]; {
} for(int i = 0; i < NUM_PDM_MICS; i++)
} {
else c_audio <: output[i];
{ }
break;
}
mic_array_frame_time_domain * unsafe current = mic_array_get_next_time_domain_frame(c_ds_output, 2, buffer, mic_audio, dc); mic_array_frame_time_domain * unsafe current = mic_array_get_next_time_domain_frame(c_ds_output, 2, buffer, mic_audio, dc);
#ifdef MIC_PROCESSING_USE_INTERFACE #ifdef MIC_PROCESSING_USE_INTERFACE
i_mic_process.transfer_buffers(current, output); i_mic_process.transfer_buffers(current, output);
#else #else
user_pdm_process(current, output); user_pdm_process(current, output);
#endif #endif
}
else
{
loop = 0;
continue;
break;
}
break;
}
} }
} }
} }