private void Init(FMOD.System system, bool setToDefaultValues = false) { system.lockDSP().ERRCHECK(); this.Bands.Clear(); var gainValues = !setToDefaultValues && this.playerSettings.PlayerEngine.EqualizerSettings != null ? this.playerSettings.PlayerEngine.EqualizerSettings.GainValues : null; foreach (var value in EqDefaultValues) { var band = EqualizerBand.GetEqualizerBand(system, this.IsEnabled, value[0], value[1], value[2]); if (band != null) { float savedValue; if (gainValues != null && gainValues.TryGetValue(band.BandCaption, out savedValue)) { band.Gain = savedValue; } this.Bands.Add(band); } } system.unlockDSP().ERRCHECK(); system.update().ERRCHECK(); }
public static EqualizerBand GetEqualizerBand(FMOD.System system, bool isActive, float centerValue, float bandwithValue, float gainValue) { FMOD.DSP dspParamEq = null; if (isActive) { if (!system.createDSPByType(FMOD.DSP_TYPE.PARAMEQ, out dspParamEq).ERRCHECK()) { return(null); } FMOD.ChannelGroup masterChannelGroup; if (!system.getMasterChannelGroup(out masterChannelGroup).ERRCHECK()) { return(null); } int numDSPs; if (!masterChannelGroup.getNumDSPs(out numDSPs).ERRCHECK()) { return(null); } if (!masterChannelGroup.addDSP(numDSPs, dspParamEq).ERRCHECK()) { return(null); } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.CENTER, centerValue).ERRCHECK()) { return(null); } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.BANDWIDTH, bandwithValue).ERRCHECK()) { return(null); } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.GAIN, gainValue).ERRCHECK()) { return(null); } if (!dspParamEq.setActive(true).ERRCHECK()) { return(null); } } var band = new EqualizerBand(system, dspParamEq, centerValue, gainValue, isActive); return(band); }
public static EqualizerBand GetEqualizerBand(FMOD.System system, bool isActive, float centerValue, float bandwithValue, float gainValue) { FMOD.DSP dspParamEq = null; if (isActive) { if (!system.createDSPByType(FMOD.DSP_TYPE.PARAMEQ, out dspParamEq).ERRCHECK()) { return null; } FMOD.ChannelGroup masterChannelGroup; if (!system.getMasterChannelGroup(out masterChannelGroup).ERRCHECK()) { return null; } int numDSPs; if (!masterChannelGroup.getNumDSPs(out numDSPs).ERRCHECK()) { return null; } if (!masterChannelGroup.addDSP(numDSPs, dspParamEq).ERRCHECK()) { return null; } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.CENTER, centerValue).ERRCHECK()) { return null; } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.BANDWIDTH, bandwithValue).ERRCHECK()) { return null; } if (!dspParamEq.setParameterFloat((int)FMOD.DSP_PARAMEQ.GAIN, gainValue).ERRCHECK()) { return null; } if (!dspParamEq.setActive(true).ERRCHECK()) { return null; } } var band = new EqualizerBand(system, dspParamEq, centerValue, gainValue, isActive); return band; }