ma_engine_effecteffect;/* The main effect for panning, etc. This is set on the mixer at initialisation time. */
ma_engine_effecteffect;/* The main effect for panning, etc. This is set on the mixer at initialisation time. */
ma_mixermixer;
ma_mutexlock;/* Only used by ma_engine_sound_init_*() and ma_engine_sound_uninit(). Not used in the mixing thread. */
ma_bool32isPlaying;/* True by default. Sound groups can be stopped with ma_engine_sound_stop() and resumed with ma_engine_sound_start(). Also affects children. */
ma_mutexlock;/* Only used by ma_engine_sound_init_*() and ma_engine_sound_uninit(). Not used in the mixing thread. */
ma_uint64runningTimeInEngineFrames;/* The amount of time the sound has been running in engine frames, including start delays. */
ma_uint64startDelayInEngineFrames;
ma_bool32isPlaying;/* True by default. Sound groups can be stopped with ma_engine_sound_stop() and resumed with ma_engine_sound_start(). Also affects children. */
/* We need to loop here to ensure we fill every frame. This won't necessarily be able to be done in one iteration due to resampling within the effect. */
totalFramesProcessed=0;
while(totalFramesProcessed<frameCount){
frameCountOut=frameCount-totalFramesProcessed;
frameCountIn=frameCount-totalFramesProcessed;
/* Before can mix the group we need to mix it's children. */
/* We need to loop here to ensure we fill every frame. This won't necessarily be able to be done in one iteration due to resampling within the effect. */