internal void PlatformSetFilter(FilterMode mode, float filterQ, float frequency)
        {
            if (!Controller.Efx.IsAvailable)
            {
                return;
            }

            switch (mode)
            {
            case FilterMode.BandPass:
                _filterType = EfxFilterType.Bandpass;
                break;

            case FilterMode.LowPass:
                _filterType = EfxFilterType.Lowpass;
                break;

            case FilterMode.HighPass:
                _filterType = EfxFilterType.Highpass;
                break;
            }

            _filterQ   = filterQ;
            _frequency = frequency;

            // so ApplyFilter() can be called in PlatformPlay() instead
            _needsFilterUpdate = true;

            if (State == SoundState.Playing)
            {
                ApplyFilter();
            }
        }
        internal void PlatformSetFilter(FilterMode mode, float filterQ, float frequency)
        {
            if (!OpenALSoundController.Efx.IsInitialized)
            {
                return;
            }

            applyFilter = true;
            switch (mode)
            {
            case FilterMode.BandPass:
                filterType = EfxFilterType.Bandpass;
                break;

            case FilterMode.LowPass:
                filterType = EfxFilterType.Lowpass;
                break;

            case FilterMode.HighPass:
                filterType = EfxFilterType.Highpass;
                break;
            }
            this.filterQ   = filterQ;
            this.frequency = frequency;
            if (State == SoundState.Playing)
            {
                ApplyFilter();
                applyFilter = false;
            }
        }
Esempio n. 3
0
 protected AudioEffect(EffectsExtension efx, EfxFilterType type)
 {
     if (efx == null)
     {
         throw new ArgumentNullException("efx");
     }
     Efx      = efx;
     FilterId = efx.GenFilter();
     efx.Filter(FilterId, EfxFilteri.FilterType, (int)type);
     ALHelpers.CheckError();
     Dirty = true;
 }