public void UpdateNoiseFloor(Common.NoiseFloor noisefloor, int customNoiseFloor) { if (_silenceHelper != null) { _silenceHelper.UpdateNoiseFloor(noisefloor, customNoiseFloor); } }
public void UpdateNoiseFloor(Common.NoiseFloor noiseFloor, int customNoiseFloor) { if (processorWaveProvider != null) { processorWaveProvider.UpdateNoiseFloor(noiseFloor, customNoiseFloor); } }
public WaveStreamProcessor(string streamURL, string streamName, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action <bool> propertyChangedAction, float initialVolume, bool recordingEnabled, Common.SignalRecordingType recordingType, int recordingKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25, string waveOutDevName) { _streamShouldPlay = true; _streamURL = streamURL; _streamName = streamName; _sigDelegate = sigDelegate; _propertyChangedAction = propertyChangedAction; playbackState = StreamingPlaybackState.Stopped; _initialVolume = Math.Max(initialVolume, 0.1f); _recordingEnabled = recordingEnabled; _recordingType = recordingType; _recordingKickTime = recordingKickTime; _noiseFloor = noiseFloor; _customNoiseFloor = customNoiseFloor; _removeNoise = removeNoise; _decodeMDC1200 = decodeMDC1200; _decodeGEStar = decodeGEStar; _decodeFleetSync = decodeFleetSync; _decodeP25 = decodeP25; _waveOutDevName = waveOutDevName; System.Threading.Thread tWave = new Thread(WaveStreamProc); tWave.Name = streamName; tWave.IsBackground = true; tWave.Start(); }
public SilenceHelper(int samplesPerSecond, Common.NoiseFloor noiseFloor, bool removeNoise, int customNoiseFloor) { _soundPackets = new bool[samplesPerSecond]; _soundPacketPointer = 0; for (int i = 0; i < _soundPackets.Length; i++) _soundPackets[i] = true; _noiseFloor = noiseFloor; _removeNoise = removeNoise; _customNoiseFloor = CalculateCustomNoiseFloor(customNoiseFloor); ClearSilenceStats(); }
public SilenceHelper(int samplesPerSecond, Common.NoiseFloor noiseFloor, bool removeNoise, int customNoiseFloor) { _soundPackets = new bool[samplesPerSecond]; _soundPacketPointer = 0; for (int i = 0; i < _soundPackets.Length; i++) { _soundPackets[i] = true; } _noiseFloor = noiseFloor; _removeNoise = removeNoise; _customNoiseFloor = CalculateCustomNoiseFloor(customNoiseFloor); ClearSilenceStats(); }
public WaveInChannelProcessor(string streamName, string waveInSourceName, int waveInChannel, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action<bool> propertyChangedAction, float initialVolume, bool recordingEnabled, Common.SignalRecordingType recordingType, int recordingKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25, string waveOutDevName) { _streamShouldPlay = true; _streamName = streamName; _waveInSourceName = waveInSourceName; _waveInChannel = waveInChannel; _sigDelegate = sigDelegate; _propertyChangedAction = propertyChangedAction; sourceActive = false; _recordingEnabled = recordingEnabled; _recordingType = recordingType; _recordingKickTime = recordingKickTime; _noiseFloor = noiseFloor; _customNoiseFloor = customNoiseFloor; _removeNoise = removeNoise; _decodeMDC1200 = decodeMDC1200; _decodeGEStar = decodeGEStar; _decodeFleetSync = decodeFleetSync; _decodeP25 = decodeP25; _waveOutDevName = waveOutDevName; bufferedWaveProvider = new BufferedWaveProvider(AudioProcessingGlobals.GetWaveFormatForChannels(1)); bufferedWaveProvider.BufferDuration = TimeSpan.FromSeconds(3); processorWaveProvider = new ProcessorWaveProvider(streamName, bufferedWaveProvider, ProcessRadioSignalingItem, propertyChangedAction, recordingEnabled, recordingType, recordingKickTime, noiseFloor, customNoiseFloor, removeNoise, decodeMDC1200, decodeGEStar, decodeFleetSync, decodeP25); volumeProvider = new VolumeWaveProvider16(processorWaveProvider); volumeProvider.Volume = initialVolume; FirePropertyChangedAction(true); WaveInManager.Instance.SetupForProcessor(this); sourceActive = true; waveOut = CreateWaveOut(); waveOut.Init(volumeProvider); waveOut.Play(); }
public WaveInChannelProcessor(string streamName, string waveInSourceName, int waveInChannel, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action <bool> propertyChangedAction, float initialVolume, bool recordingEnabled, Common.SignalRecordingType recordingType, int recordingKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25, string waveOutDevName) { _streamShouldPlay = true; _streamName = streamName; _waveInSourceName = waveInSourceName; _waveInChannel = waveInChannel; _sigDelegate = sigDelegate; _propertyChangedAction = propertyChangedAction; sourceActive = false; _recordingEnabled = recordingEnabled; _recordingType = recordingType; _recordingKickTime = recordingKickTime; _noiseFloor = noiseFloor; _customNoiseFloor = customNoiseFloor; _removeNoise = removeNoise; _decodeMDC1200 = decodeMDC1200; _decodeGEStar = decodeGEStar; _decodeFleetSync = decodeFleetSync; _decodeP25 = decodeP25; _waveOutDevName = waveOutDevName; bufferedWaveProvider = new BufferedWaveProvider(AudioProcessingGlobals.GetWaveFormatForChannels(1)); bufferedWaveProvider.BufferDuration = TimeSpan.FromSeconds(3); processorWaveProvider = new ProcessorWaveProvider(streamName, bufferedWaveProvider, ProcessRadioSignalingItem, propertyChangedAction, recordingEnabled, recordingType, recordingKickTime, noiseFloor, customNoiseFloor, removeNoise, decodeMDC1200, decodeGEStar, decodeFleetSync, decodeP25); volumeProvider = new VolumeWaveProvider16(processorWaveProvider); volumeProvider.Volume = initialVolume; FirePropertyChangedAction(true); WaveInManager.Instance.SetupForProcessor(this); sourceActive = true; waveOut = CreateWaveOut(); waveOut.Init(volumeProvider); waveOut.Play(); }
public void UpdateNoiseFloor(Common.NoiseFloor noiseFloor, int customNoiseFloor) { _noiseFloor = noiseFloor; _customNoiseFloor = CalculateCustomNoiseFloor(customNoiseFloor); }
public WaveStreamProcessor(string streamURL, string streamName, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action<bool> propertyChangedAction, float initialVolume, bool recordingEnabled, Common.SignalRecordingType recordingType, int recordingKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25, string waveOutDevName) { _streamShouldPlay = true; _streamURL = streamURL; _streamName = streamName; _sigDelegate = sigDelegate; _propertyChangedAction = propertyChangedAction; playbackState = StreamingPlaybackState.Stopped; _initialVolume = Math.Max(initialVolume, 0.1f); _recordingEnabled = recordingEnabled; _recordingType = recordingType; _recordingKickTime = recordingKickTime; _noiseFloor = noiseFloor; _customNoiseFloor = customNoiseFloor; _removeNoise = removeNoise; _decodeMDC1200 = decodeMDC1200; _decodeGEStar = decodeGEStar; _decodeFleetSync = decodeFleetSync; _decodeP25 = decodeP25; _waveOutDevName = waveOutDevName; System.Threading.Thread tWave = new Thread(WaveStreamProc); tWave.Name = streamName; tWave.IsBackground = true; tWave.Start(); }
public ProcessorWaveProvider(string sourceName, IWaveProvider sourceWaveProvider, string waveFilePath, WaveFormat outFormat, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action <bool> hasPropertyChanged, bool recordEnabled, Common.SignalRecordingType recordType, int recordKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25) : base(sourceWaveProvider, waveFilePath) { LastValidStreamTitle = string.Empty; _sourceName = sourceName; _sourceFormat = sourceWaveProvider.WaveFormat; _outFormat = outFormat; _hasPropertyChanged = hasPropertyChanged; _silenceHelper = new SilenceHelper(outFormat.AverageBytesPerSecond / (outFormat.BitsPerSample / 8), noiseFloor, removeNoise, customNoiseFloor); if (outFormat.Equals(sourceWaveProvider.WaveFormat)) { _resampleStream = null; _useResampler = false; } else { if (Common.AppSettings.Instance.DiagnosticMode) { Common.ConsoleHelper.ColorWriteLine(ConsoleColor.Magenta, "{0}: Source Format <> Out Format [{1}] <> [{2}]", sourceName, sourceWaveProvider.WaveFormat, outFormat); } _resampleStream = new NAudio.Wave.Compression.AcmStream(sourceWaveProvider.WaveFormat, outFormat); _useResampler = true; } if (decodeMDC1200) { _mdc = new Decoders.MDC1200(outFormat.SampleRate, ProcessMDC1200, sourceName); } else { _mdc = null; } if (decodeGEStar) { _star = new Decoders.STAR(outFormat.SampleRate, ProcessSTAR, Decoders.STAR.star_format.star_format_1_16383, sourceName); } else { _star = null; } _rootDecoder = new Decoders.RootDecoder(outFormat.SampleRate, decodeFleetSync, decodeP25, ProcessRootDecoder); _recorder = new AudioRecorder(sourceName, recordType, recordKickTime, outFormat, AudioProcessingGlobals.DefaultSaveFileWaveFormat, recordEnabled); _bytesPerSample = outFormat.BitsPerSample / 8; _encoding = outFormat.Encoding; _sigDelegate = sigDelegate; }
public ProcessorWaveProvider(string sourceName, IWaveProvider sourceWaveProvider, Common.ProcessRadioSignalingItemDelegate sigDelegate, Action <bool> hasPropertyChanged, bool recordEnabled, Common.SignalRecordingType recordType, int recordKickTime, Common.NoiseFloor noiseFloor, int customNoiseFloor, bool removeNoise, bool decodeMDC1200, bool decodeGEStar, bool decodeFleetSync, bool decodeP25) : this(sourceName, sourceWaveProvider, string.Empty, AudioProcessingGlobals.DefaultProcessingWaveFormat, sigDelegate, hasPropertyChanged, recordEnabled, recordType, recordKickTime, noiseFloor, customNoiseFloor, removeNoise, decodeMDC1200, decodeGEStar, decodeFleetSync, decodeP25) { }