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);
            }
        }
Example #2
0
        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");
            }
        }