void CatchPeakOverloadEvent(object sender, VuMeter.PeakOverloadEventArgs EventOb) { //Obi.Events.Audio.VuMeter.PeakOverloadEventArgs EventOb = e as Obi.Events.Audio.VuMeter.PeakOverloadEventArgs; if (EventOb.Channel == 1) { //m_StrLeftOverloadIndicator = "OL "; m_StrLeftOverloadIndicator = Localizer.Message("TextVuMeter_OverloadIndicator"); } else { //m_StrRightOverloadIndicator = "OL "; m_StrRightOverloadIndicator = Localizer.Message("TextVuMeter_OverloadIndicator"); } //UpdateControls (); AudioLib.VuMeter ob_VuMeter = sender as AudioLib.VuMeter; // beep enabled false means this is first peak overload after text timer tick, so play beep if (m_OverLoadBeepEnabled == false) { PlayBeep(); m_OverLoadBeepEnabled = true; } }
// function to catch the update event from VuMeter class to update graph cordinates public void CatchPeakMeterUpdateEvent(object sender, AudioLib.VuMeter.PeakMeterUpdateEventArgs e) { VuMeter ob_VuMeterArg = sender as VuMeter; mVuMeter = ob_VuMeterArg; double channelValueLeft = 0; double channelValueRight = 0; if (e.PeakDb != null && e.PeakDb.Length > 0) { channelValueLeft = e.PeakDb[0]; if (e.PeakDb.Length > 1) { channelValueRight = e.PeakDb[1]; } else { channelValueRight = channelValueLeft; } //if (channelValueLeft == Double.PositiveInfinity // && e.PeakDb.Length > 1 // && channelValueRight == Double.PositiveInfinity) //{ // CatchResetEvent(); // return; //} } // Update erase left and erase right cordinates int ThresholdFactor = 12500 / (210 - 15); int DisplayAmpLeft = (int)((channelValueLeft * ThresholdFactor) / 100.0); int DisplayAmpRight = (int)((channelValueRight * ThresholdFactor) / 100.0); int Offset = 65 - ((15 * ThresholdFactor) / 100); DisplayAmpLeft = DisplayAmpLeft + Offset; DisplayAmpRight = DisplayAmpRight + Offset; EraserLeft = Convert.ToInt32(LowBottom - (ScaleFactor * DisplayAmpLeft)); EraserRight = Convert.ToInt32(LowBottom - (ScaleFactor * DisplayAmpRight)); //EraserLeft = 100+ mVuMeter.m_MeanValueLeft; tmRefresh.Start(); //MessageBox.Show(EraserLeft.ToString()); }