Example #1
0
        protected override void InternalRefreshSource()
        {
            if (_processor == null || SrcInfo == null)
            {
                return;
            }

            bool bRestartNeeded = !string.Equals(_processor.WaveInName, SrcInfo.SourceLocation, StringComparison.InvariantCultureIgnoreCase);

            bRestartNeeded |= _processor.WaveInChannelIndex != SrcInfo.SourceChannel;
            bRestartNeeded |= !string.Equals(_processor.WaveOutDeviceName, SrcInfo.WaveOutDeviceName, StringComparison.InvariantCultureIgnoreCase);

            if (bRestartNeeded)
            {
                this.Stop();
                System.Threading.Thread.Sleep(50);
                this.Start();
            }
            else
            {
                _processor.StreamName = SrcInfo.SourceName;
                _processor.SetRecordingEnabled(SrcInfo.RecordAudio);
                _processor.UpdateRecordingKickTime(SrcInfo.RecordingType, SrcInfo.RecordingKickTime);
                _processor.UpdateNoiseFloor(SrcInfo.NoiseFloor, SrcInfo.CustomNoiseFloor);
                _processor.UpdateRemoveNoise(SrcInfo.RemoveNoise);
                _processor.UpdateDecodeMDC1200(SrcInfo.DecodeMDC1200);
                _processor.UpdateDecodeGEStar(SrcInfo.DecodeGEStar);
                _processor.UpdateDecodeFleetSync(SrcInfo.DecodeFleetSync);
                //_processor.UpdateDecodeP25(SrcInfo.DecodeP25);
            }
        }