Exemple #1
0
 protected override void DisposeProcessors()
 {
     base.DisposeProcessors();
     _mdc         = null;
     _star        = null;
     _rootDecoder = null;
 }
Exemple #2
0
 public void UpdateDecodeGEStar(bool decode)
 {
     if (decode)
     {
         if (_star == null)
         {
             _star = new Decoders.STAR(_outFormat.SampleRate, ProcessSTAR, Decoders.STAR.star_format.star_format_1_16383, _sourceName);
         }
     }
     else
     {
         _star = null;
     }
 }
        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;
        }
Exemple #4
0
        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;
        }
Exemple #5
0
        private void ProcessSTAR(Decoders.STAR decoder, RadioLog.Common.SignalCode sigCode, uint unitID, uint tag, uint status, uint message)
        {
            Common.ConsoleHelper.ColorWriteLine(ConsoleColor.Magenta, "STAR: {0} on stream {1}", unitID, _sourceName);

            _silenceHelper.ClearSilenceStats();

            if (_sigDelegate != null)
            {
                string desc;
                if (!string.IsNullOrWhiteSpace(LastValidStreamTitle))
                {
                    desc = string.Format("Unit: {0}, Tag: {1}, Status: {2}, Message: {3}, Stream Title: {4}", unitID, tag, status, message, LastValidStreamTitle);
                }
                else
                {
                    desc = string.Format("Unit: {0}, Tag: {1}, Status: {2}, Message: {3}", unitID, tag, status, message);
                }
                RadioLog.Common.RadioSignalingItem sigItem = new Common.RadioSignalingItem(Common.SignalingSourceType.Streaming, _sourceName, RadioLog.Common.SignalingNames.STAR, sigCode, unitID.ToString(), desc, DateTime.Now, _recorder.CurrentFileName);
                _sigDelegate(sigItem);
            }
        }
 public void UpdateDecodeGEStar(bool decode)
 {
     if (decode)
     {
         if (_star == null)
         {
             _star = new Decoders.STAR(_outFormat.SampleRate, ProcessSTAR, Decoders.STAR.star_format.star_format_1_16383, _sourceName);
         }
     }
     else
     {
         _star = null;
     }
 }
 protected override void DisposeProcessors()
 {
     base.DisposeProcessors();
     _mdc = null;
     _star = null;
     _rootDecoder = null;
 }