Exemple #1
0
        private void SetVisualType(VisualDescription visualDescription)
        {
            lock (_visualLock)
            {
                // Certain Visuals require more information on the display
                fftScanHUD.Visibility = visualDescription.VisualType == VisualDescription.VisualTypeEnumeration.FftScan ? Visibility.Visible : Visibility.Collapsed;

                peakMeterHUD.Visibility = visualDescription.VisualType == VisualDescription.VisualTypeEnumeration.PeakMeter ? Visibility.Visible : Visibility.Collapsed;

                switch (visualDescription.VisualType)
                {
                case VisualDescription.VisualTypeEnumeration.None:
                    _currentRenderVisuals = null;
                    ClearOutputBitmap();
                    FlushOutputBitmap();
                    break;

                case VisualDescription.VisualTypeEnumeration.PeakMeter:
                    FourierTransform.SetMeterFrequencies(_peakMeterFrequencies);
                    _lastPeaks            = InitializeArray(FourierTransform.FREQUENCYSLOTCOUNT, byte.MaxValue);
                    _maximumPeaks         = InitializeArray(FourierTransform.FREQUENCYSLOTCOUNT, byte.MaxValue);
                    _currentRenderVisuals = RenderPeakMeter;
                    break;

                case VisualDescription.VisualTypeEnumeration.Oscilloscope:
                    _currentRenderVisuals = RenderOscilloscope;
                    break;

                case VisualDescription.VisualTypeEnumeration.Scope:
                    _currentRenderVisuals = RenderScope;
                    break;

                case VisualDescription.VisualTypeEnumeration.Scan:
                    _scanIsCleared        = true;
                    _currentRenderVisuals = RenderScan;
                    break;

                case VisualDescription.VisualTypeEnumeration.FftScan:
                    FourierTransform.SetMeterFrequencies(_fftScanFrequencies);
                    _maximumPeaks         = InitializeArray(_maximumPeaks.Length, 0);
                    _fftScanIsCleared     = true;
                    _currentRenderVisuals = RenderFFTScan;
                    break;
                }
            }
        }
Exemple #2
0
        private void InitializeRendering()
        {
            // Set default visualizer
            ActiveVisualizer = Visualizers.First(vd => vd.VisualType == VisualDescription.VisualTypeEnumeration.PeakMeter);

            _outputWriteableBitmap = new WriteableBitmap((int)outputImage.Width, (int)outputImage.Height);
            outputImage.Source     = _outputWriteableBitmap;

            _clearShape = new Rectangle
            {
                Width  = _outputWriteableBitmap.PixelWidth,
                Height = _outputWriteableBitmap.PixelHeight,
                Fill   = new SolidColorBrush(Color.FromArgb(32, 0, 0, 0))               // the less opaque it is, the longer the blur effects lasts
            };

            _clearBuffer  = ArrayHelper.Instantiate(_outputWriteableBitmap.Pixels.Length, _clearColour);
            _lastPeaks    = InitializeArray(FourierTransform.FREQUENCYSLOTCOUNT, byte.MaxValue);
            _maximumPeaks = InitializeArray(FourierTransform.FREQUENCYSLOTCOUNT, byte.MaxValue);

            _widthWithoutMarginRight = Convert.ToInt32(outputImage.Width - marginLeft);
        }
Exemple #3
0
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            var headerMutable = Header.GetFirstValue(payload.Data);

            IEnumerator iterator;

            foreach (var entry in TraceList.GetEntries(payload.Data))
            {
                ExecutionHeaderTarget.SetValue(headerMutable, entry);

                foreach (var traceMutable in TraceList.GetValue(entry))
                {
                    var traceVisualDescription = new VisualDescription(payload.VisualData.Bound.CreateDependingBound(Name));

                    VisualPayload tracePayload = new VisualPayload(traceMutable, traceVisualDescription);

                    iterator = TraceState.Transmit(tracePayload);
                    while (iterator.MoveNext())
                    {
                        yield return(null);
                    }
                }
            }
        }
Exemple #4
0
 public VisualPayload(MutableObject data, VisualDescription visualData)
 {
     Data       = data;
     VisualData = visualData;
 }
 public void Dispose()
 {
     VisualDescription.Clear();
     DataBuffer.Clear();
 }