MA_APIma_resultma_mixer_mix_rb(ma_mixer*pMixer,ma_rb*pRB,ma_uint64frameCountIn,ma_uint64*pFrameCountOut,floatvolume,ma_effect*pEffect,ma_formatformatIn,ma_uint32channelsIn);/* Caller is the consumer. */
MA_APIma_resultma_mixer_mix_pcm_rb(ma_mixer*pMixer,ma_pcm_rb*pRB,ma_uint64frameCountIn,ma_uint64*pFrameCountOut,floatvolume,ma_effect*pEffect);/* Caller is the consumer. */
MA_APIma_resultma_mixer_mix_rb(ma_mixer*pMixer,ma_rb*pRB,ma_uint64offsetInFrames,ma_uint64frameCountIn,ma_uint64*pFrameCountOut,floatvolume,ma_effect*pEffect,ma_formatformatIn,ma_uint32channelsIn);/* Caller is the consumer. */
MA_APIma_resultma_mixer_mix_pcm_rb(ma_mixer*pMixer,ma_pcm_rb*pRB,ma_uint64offsetInFrames,ma_uint64frameCountIn,ma_uint64*pFrameCountOut,floatvolume,ma_effect*pEffect);/* Caller is the consumer. */
/* Ring buffer mixing can be implemented in terms of a memory mapped data source. */
ma_rb_data_sourceds;
ma_rb_data_source_init(pRB,formatIn,channelsIn,&ds);/* Will never fail and does not require an uninit() implementation. */
returnma_mixer_mix_data_source(pMixer,&ds,frameCountIn,pFrameCountOut,volume,pEffect,MA_TRUE);/* Ring buffers always loop, but the loop parameter will never actually be used because ma_rb_data_source__on_unmap() will never return MA_AT_END. */
returnma_mixer_mix_data_source(pMixer,&ds,offsetInFrames,frameCountIn,pFrameCountOut,volume,pEffect,MA_TRUE);/* Ring buffers always loop, but the loop parameter will never actually be used because ma_rb_data_source__on_unmap() will never return MA_AT_END. */