private bool GetAudioData(byte[] pkgData, long lBytesToWrite, WAVEFORMATEXTENSION waveFormat)
        {
            const double FFT_SPEED     = 0.006;
            var          m_nBufferSize = AudioBandsConfig.NextPowerOfTwo((int)(waveFormat.NAvgBytesPerSec * FFT_SPEED));

            m_nNumSamples = m_nBufferSize / waveFormat.NBlockAlign;
            //m_RealIn_RT.Clear();
            //m_RealIn_LT.Clear();
            //m_Band_arr.Clear();
            //m_BandLow_arr.Clear();
            switch (waveFormat.WBitsPerSample)
            {
            case 8:
                break;

            case 16:
                if (waveFormat.NChannels == 1)     // mono
                {
                    int Samples = m_nNumSamples >> 1;
                    for (int i = 0; i < Samples; ++i)
                    {
                        m_RealIn_RT[i] = (float)(pkgData[i]);
                        m_RealIn_LT[i] = m_RealIn_RT[i];
                    }
                    m_nNumSamples = Samples;
                }
                //else if (waveFormat.NChannels == 2) // stereo
                else
                {
                    // Stereo has Left+Right channels
                    int Samples = m_nNumSamples >> 2;
                    //for (int i = 0, j = 0; i < Samples; ++i, j += 2)
                    for (int i = 0, j = 0; i < pkgData.Length; ++i, j += 2)
                    {
                        if (j >= pkgData.Length)
                        {
                            continue;
                        }
                        if (pkgData[j] == 0)
                        {
                            m_RealIn_RT.Add(0);
                            if (pkgData[j + 1] == 0)
                            {
                                m_RealIn_LT.Add(0);
                            }
                            else if (pkgData[j + 1] != 0)
                            {
                                m_RealIn_LT.Add((float)(pkgData[j + 1]));
                            }
                        }
                        else
                        {
                            m_RealIn_RT.Add((float)(pkgData[j]));
                            m_RealIn_LT.Add((float)(pkgData[j + 1]));
                        }
                        m_nNumSamples = Samples;
                    }
                }
                break;
            }
            return(true);
        }