public GainMixTo ( |
||
destinationData | ||
sourceIndex | int | |
destinationIndex | int | |
length | int | |
gain | float | |
Результат | void |
/// <summary> /// Called by GATPlayer. /// Needed when overriding default mixing: /// If a sample is routed through a track, /// it should be mixed to it. /// </summary> public void MixFrom(GATData data, int index, int offsetInBuffer, int length, float gain = 1f) { if (!_active) { return; } if (_bufferIsDirty) //Contains old data { int lastIndex = offsetInBuffer + length; if (lastIndex < GATInfo.AudioBufferSizePerChannel || offsetInBuffer > 0) //if what we want to add to the buffer doesn't fill it, let's clear it first { _trackBuffer.Clear(); } if (gain == 1f) { data.CopyTo(_trackBuffer, offsetInBuffer, index, length); // no need to mix on dirty or empty data, simply copy } else { data.CopyGainTo(_trackBuffer, index, offsetInBuffer, length, gain); } _bufferIsDirty = false; } else { if (gain == 1f) { data.MixTo(_trackBuffer, offsetInBuffer, index, length); } else { data.GainMixTo(_trackBuffer, index, offsetInBuffer, length, gain); } } NbOfMixedSamples++; _hasData = true; }
/// <summary> /// Called by GATPlayer. /// Needed when overriding default mixing: /// If a sample is routed through a track, /// it should be mixed to it. /// </summary> public void MixFrom( GATData data, int index, int offsetInBuffer, int length, float gain = 1f ) { if( !_active ) return; if( _bufferIsDirty ) //Contains old data { int lastIndex = offsetInBuffer + length; if( lastIndex < GATInfo.AudioBufferSizePerChannel || offsetInBuffer > 0 ) //if what we want to add to the buffer doesn't fill it, let's clear it first { _trackBuffer.Clear(); } if( gain == 1f ) { data.CopyTo( _trackBuffer, offsetInBuffer, index, length ); // no need to mix on dirty or empty data, simply copy } else { data.CopyGainTo( _trackBuffer, index, offsetInBuffer, length, gain ); } _bufferIsDirty = false; } else { if( gain == 1f ) { data.MixTo( _trackBuffer, offsetInBuffer, index, length ); } else { data.GainMixTo( _trackBuffer, index, offsetInBuffer, length, gain ); } } NbOfMixedSamples++; _hasData = true; }