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; } }
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; }