GAudio.GATTrack.FXAndMixTo C# (CSharp) Méthode

FXAndMixTo() public méthode

public FXAndMixTo ( float audioBuffer ) : bool
audioBuffer float
Résultat bool
        public bool FXAndMixTo( float[] audioBuffer )
        {
            if( !_active )
                return false;

            int i;
            bool isEmptyData = false;

            if( _hasData == false ) //no sample overwrote the buffer, let's clear it
            {
                if( _bufferIsDirty )
                {
                    _trackBuffer.Clear();
                    _bufferIsDirty = false;
                }

                isEmptyData = true;
            }

            if( _contributor != null )
            {
                isEmptyData = !( _contributor.MixToTrack( _trackBuffer, _trackNb ) );
            }

            if( _filtersHandler.HasFilters )
            {
                if( _filtersHandler.ApplyFilters( _trackBuffer.ParentArray, _trackBuffer.MemOffset, GATInfo.AudioBufferSizePerChannel, isEmptyData ) )
                {
                    isEmptyData  = false;
                }
            }

            if( isEmptyData )
            {
                _audioThreadStreamProxy.BroadcastStream( _trackBuffer.ParentArray, _trackBuffer.MemOffset, isEmptyData );
                return false;
            }

            if( _shouldToggleMute )
            {
                if( _nextMute )
                {
                    _trackBuffer.FadeOut( GATInfo.AudioBufferSizePerChannel );
                }
                else
                {
                    _trackBuffer.FadeIn( GATInfo.AudioBufferSizePerChannel );
                    _mute = false;
                }

                _shouldToggleMute = false;
            }

            _bufferIsDirty = true;

            _audioThreadStreamProxy.BroadcastStream( _trackBuffer.ParentArray, _trackBuffer.MemOffset, false );

            if( _mute )
                return false;

            GATDynamicChannelGain channelGain;

            for( i = 0; i < _panInfo.channelGains.Count; i++ )
            {
                channelGain = _panInfo.channelGains[i];
                if( channelGain.ShouldInterpolate )
                {
                    _trackBuffer.SmoothedGainMixToInterlaced( audioBuffer, 0, 0, GATInfo.AudioBufferSizePerChannel, channelGain );
                    continue;
                }

                if( channelGain.Gain != 0f )
                {
                    _trackBuffer.GainMixToInterlaced( audioBuffer, 0, 0, GATInfo.AudioBufferSizePerChannel, channelGain );
                }
            }

            if( _nextMute ) //only set mute here to allow for mixing of faded data : elegant stop
                _mute = true;

            return !isEmptyData;
        }