public SygnalAnalyzerForm() { InitializeComponent(); _wfmt = new WaveFormat(); _wfmt.SetPCMFormat(11025, 1, 16); _bufferSize = FFT.NextPowerOfTwo((UInt32)(_wfmt.BytesPerSecond * FFT_SPEED)); _numSamples = 0; _numOutBuffers = 0; // ------------------------------------------------------ InputZGraphCtrl.GraphPane.Title.Text = "Input, mV"; InputZGraphCtrl.GraphPane.XAxis.Title.Text = "time, ms"; InputZGraphCtrl.GraphPane.YAxis.Title.Text = "signal, mV"; InputZGraphCtrl.GraphPane.XAxis.MinorGrid.IsVisible = true; InputZGraphCtrl.GraphPane.YAxis.MinorGrid.IsVisible = true; SpectrumZGraphCtrl.GraphPane.Title.Text = "Spectrum, dB"; SpectrumZGraphCtrl.GraphPane.XAxis.MinorGrid.IsVisible = true; SpectrumZGraphCtrl.GraphPane.YAxis.MinorGrid.IsVisible = true; SpectrumZGraphCtrl.GraphPane.YAxis.Type = AxisType.Log; SpectrumZGraphCtrl.GraphPane.YAxis.Title.Text = "Amplitude, db"; SpectrumZGraphCtrl.GraphPane.XAxis.Title.Text = "frequency, Hz"; }
public int Open(int deviceId, WaveFormat wfmt) { int mmr = WaveConstants.MMSYSERR_HANDLEBUSY; if (!IsOpen()) { _Callback = new DriverCallback(waveOutProc); GCHandle handle = GCHandle.Alloc(_Callback); mmr = WaveOutput.waveOutOpen(ref _hWaveOut, deviceId, ref wfmt.wfmt.Format, Marshal.GetFunctionPointerForDelegate(_Callback), IntPtr.Zero, WaveConstants.CALLBACK_FUNCTION); handle.Free(); if (mmr == WaveConstants.MMSYSERR_NOERROR) { Interlocked.Exchange(ref _DeviceState, (int)WaveStatus.waveStopped); } } return mmr; }