Example #1
0
static void dma_callback(void)
{
   gx_audio_t *wa = (gx_audio_t*)gx_audio_data;
   // erase last chunk to avoid repeating audio
   memset(wa->data[wa->dma_busy], 0, CHUNK_SIZE);

   wa->dma_busy = wa->dma_next;
   wa->dma_next = (wa->dma_next + 1) & (BLOCKS - 1);

   DCFlushRange(wa->data[wa->dma_next], CHUNK_SIZE);
   AIInitDMA((uint32_t)wa->data[wa->dma_next], CHUNK_SIZE);

   OSSignalCond(wa->cond);
}
void
OSFastCond_Signal(FastConditionHandle handle)
{
   OSSignalCond(handle);
}
void
OSFastCond_Signal(OSFastCondition *condition)
{
   OSSignalCond(reinterpret_cast<OSCondition*>(condition));
}