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)); }