private void ComputeDo3Band(byte[] pkgData, long lBytesToWrite, WAVEFORMATEXTENSION _waveFormat)
        {
            if (GetAudioData(pkgData, lBytesToWrite, _waveFormat))
            {
                EQSTATE eqs = new EQSTATE();
                AudioBandsConfig.init_3band_state(eqs, LowFrequence, HighFrequence, (int)_waveFormat.NSamplesPerSec);
                //for (int i = 0; i < m_nNumSamples; i++)
                for (int i = 0; i < m_RealIn_RT.Count; i++)
                {
                    m_Band_arr.Add(AudioBandsConfig.do_3band(eqs, m_RealIn_RT[i]));
                    m_BandLow_arr.Add(AudioBandsConfig.do_3bandLow(eqs, m_RealIn_LT[i]));
                }
                double A2, dSum = 0, A2Low, dSumLow = 0;
                for (int i = 0; i < m_Band_arr.Count; i++)
                {
                    A2       = m_Band_arr[i] * m_Band_arr[i];
                    dSum    += A2;
                    A2Low    = m_BandLow_arr[i] * m_BandLow_arr[i];
                    dSumLow += A2Low;
                }
                double dAvg    = dSum / m_nNumSamples;
                double dAvgLow = dSumLow / m_nNumSamples;

                double dFinal    = Math.Sqrt(dAvg);
                double dFinalLow = Math.Sqrt(dAvgLow);

                double dOutput    = dFinal * Math.Sqrt(2) / 32768 * 100;
                double dOutputLow = dFinalLow * Math.Sqrt(2) / 32768 * 100;
                _audiopluseCallBack(dOutput, dOutputLow);
            }
        }