private void comboBoxEQPresets_SelectedIndexChanged(object sender, EventArgs e) { try { if (m_EQdefault) { if (m_equalizer != null) { m_equalizer.Dispose(); } int selectedIndex = comboBoxEQPresets.SelectedIndex; if (comboBoxEQPresets.Items.Count > VlcPlayer.EqPresets.Count() && selectedIndex > 0) { selectedIndex = selectedIndex - 1; m_equalizer = new Implementation.Equalizer(VlcPlayer.EqPresets[selectedIndex]); } else if (comboBoxEQPresets.Items.Count > VlcPlayer.EqPresets.Count() && selectedIndex == 0) { m_equalizer = new Implementation.Equalizer(); m_equalizer.Preamp = defBandValue[10].PreAmp / 10; for (int i = 0; i < defBandValue.Length - 2; i++) { m_equalizer.Bands[i].Amplitude = defBandValue[i].Gain / 10; } selectedIndex = -1; } else { m_equalizer = new Implementation.Equalizer(VlcPlayer.EqPresets[selectedIndex]); } Equalizer.ArrBandValue[10].PreAmp = (m_equalizer.Preamp * 10) > 150 ? 150 : m_equalizer.Preamp * 10; Equalizer.ArrBandValue[11].PreSet = selectedIndex; Console.WriteLine("m_equalizer.Preamp: " + m_equalizer.Preamp + " : " + Equalizer.ArrBandValue[10].PreAmp); for (int i = 0; i < Equalizer.ArrBandValue.Length - 2; i++) { float amplitude = m_equalizer.Bands[i].Amplitude * 10; if (amplitude > 150) { amplitude = amplitude - 150; amplitude = (m_equalizer.Bands[i].Amplitude * 10) - amplitude; } Equalizer.ArrBandValue[i].Gain = amplitude; PlayerControl.UpdateEQ(i, amplitude); PlayerControl.SaveEQSettings(i); } PlayerControl.SaveEQSettings(-1); SetBandGain(); m_EQdefault = false; } } catch (Exception ex) { Logger.LogFile(ex.Message, "", "comboBoxEQPresets_SelectedIndexChanged", ex.LineNumber(), this.Name); } }
public void Init(int handle) { try { m_handle = handle; if (m_isEnabled) { if (handle != -1) { BASS_BFX_PEAKEQ eq = new BASS_BFX_PEAKEQ(); BASS_BFX_COMPRESSOR2 comp = new BASS_BFX_COMPRESSOR2(); BASS_BFX_VOLUME preamp = new BASS_BFX_VOLUME(); m_bandValue = new BandValue(); // int compVal = Bass.BASS_ChannelSetFX(handle, BASSFXType.BASS_FX_BFX_COMPRESSOR2, 0); // comp.lChannel = BASSFXChan.BASS_BFX_CHANALL; //comp.fGain = 7.0f; //comp.fAttack = 24.9f; //comp.fRelease = 99.9f; //comp.fThreshold = -11.0f; //comp.fRatio = 4f; // Bass.BASS_FXSetParameters(compVal, comp); m_bandValue.Handle = Bass.BASS_ChannelSetFX(handle, BASSFXType.BASS_FX_BFX_PEAKEQ, 5); if (m_dsp_gain != null) { m_dsp_gain.Dispose(); } m_dsp_gain = new DSP_Gain(handle, 6); m_dsp_gain.Gain_dBV = ArrBandValue[10].PreAmp / 10; // m_preampHandle = Bass.BASS_ChannelSetFX(handle, BASSFXType.BASS_FX_BFX_VOLUME, 6); // preamp.lChannel = BASSFXChan.BASS_BFX_CHANNONE; // preamp.fVolume = (float)Math.Pow(10, (ArrBandValue[10].PreAmp / 10) / 20); //ArrBandValue[10].PreAmp; // Bass.BASS_FXSetParameters(m_preampHandle, preamp); // m_handle = handle; eq.fQ = 0f; eq.fBandwidth = 0.6f; eq.lChannel = BASSFXChan.BASS_BFX_CHANALL; for (int i = 0; i < m_centers.Length; i++) { eq.lBand = i; eq.fCenter = m_centers[i]; Bass.BASS_FXSetParameters(m_bandValue.Handle, eq); float gain = ArrBandValue[i].Gain; UpdateEQBass(i, gain); Console.WriteLine(m_bandValue.Handle + " : " + gain + " : " + i); } } else { if (m_equalizer != null) { m_equalizer.Dispose(); } m_equalizer = new Implementation.Equalizer(); // m_equalizer.Preamp = ArrBandValue[10].PreAmp / 10; for (int i = 0; i < m_centers.Length; i++) { float gain = ArrBandValue[i].Gain; UpdateEQVlc(i, gain); } // m_handle = handle; m_bandValue.Handle = -1; } } } catch (Exception ex) { Logger.LogFile(ex.Message, "", "Init", ex.LineNumber(), "Equalizer Class"); } }