Beispiel #1
0
 public override void SetPreset(Preset preset)
 {
     if (preset == null)
     {
         throw new ArgumentNullException();
     }
 }
Beispiel #2
0
 public override void SetPreset(Preset preset)
 {
     if (preset == null)
     {
         throw new ArgumentNullException();
     }
     outputWindow.PrepareCanvas(preset);
     active = true;
 }
Beispiel #3
0
 /// <summary>
 /// Copy constructor
 /// </summary>
 /// <param name="original">Another preset to copy</param>
 public Preset(Preset original)
 {
     m_Name = original.Name;
     m_Trigger = original.Trigger;
     m_Compensation = new Helpers.HexColor(original.Compensation.HexValue);
     m_MaxRed = original.MaxRed;
     m_MaxGreen = original.MaxGreen;
     m_MaxBlue = original.MaxBlue;
     m_MinColor = new Helpers.HexColor(original.MinColor.HexValue);
     m_DarkEnhanceDuration = original.DarkEnhanceDuration;
     m_MaxColor = new Helpers.HexColor(original.MaxColor.HexValue);
     m_FlashEnhanceDuration = original.FlashEnhanceDuration;
     m_MonotoneEnhance = original.MonotoneEnhance;
     m_Framerate = original.Framerate;
     m_AveragingParam = original.AveragingParam;
     m_Sectors = original.Sectors; // TODO: make sure they are taken by value
     m_VerticalSectors = original.VerticalSectors;
     m_TopSectors = original.TopSectors;
     m_BottomSectors = original.BottomSectors;
     m_VerticalSectorWidth = original.VerticalSectorWidth;
     m_HorizontalSectorHeight = original.HorizontalSectorHeight;
 }
        public void PrepareCanvas(Preset newPreset)
        {
            if (this.Dispatcher.CheckAccess())
            {
                // Update the preset
                preset = new Preset(newPreset);

                rectangles = new List<Rectangle>(Config.numberOfLeds);

                for (int i = 0; i < Config.numberOfLeds; i++)
                {
                    Rectangle r = new Rectangle();
                    rectangles.Add(r);
                }

                setRectangleSizes();
            }
            else
            {
                this.Dispatcher.Invoke(new Action(() => PrepareCanvas(newPreset)));
            }
        }
Beispiel #5
0
        public void updateSectorGui(Preset selectedPreset)
        {
            const double canvasWidth = 450;
            const double canvasHeight = 170;
            double ratio = Math.Min(canvasWidth / screenWidth, canvasHeight / screenHeight);

            if (ratio == 0)
                return;

            SectorPreview.Children.Clear();

            Rectangle frame = new Rectangle();
            frame.Width = screenWidth * ratio;
            frame.Height = screenHeight * ratio;
            if (2 * selectedPreset.VerticalSectors + selectedPreset.TopSectors + selectedPreset.BottomSectors != Config.numberOfLeds)
            {
                frame.Fill = new SolidColorBrush(Color.FromRgb(200, 50, 50));
            }
            else
            {
                frame.Fill = new SolidColorBrush(Color.FromRgb(100, 100, 100));
            }
            SectorPreview.Children.Add(frame);
            Canvas.SetTop(frame, 0);
            Canvas.SetLeft(frame, 0);

            for (int i = 0; i < Config.numberOfLeds; i++)
            {
                Rectangle r = new Rectangle();
                r.Width = (selectedPreset.Sectors[i].Right - selectedPreset.Sectors[i].Left) * ratio;
                r.Height = (selectedPreset.Sectors[i].Bottom - selectedPreset.Sectors[i].Top) * ratio;
                r.Fill = new SolidColorBrush(Color.FromRgb(20, (byte)(i * 10), 50));
                SectorPreview.Children.Add(r);
                Canvas.SetTop(r, selectedPreset.Sectors[i].Top * ratio);
                Canvas.SetLeft(r, selectedPreset.Sectors[i].Left * ratio);
            }
        }
Beispiel #6
0
        public void ApplyPreset(Preset preset, AvailableDrivers driver)
        {
            Debug.WriteLine("ApplyPreset " + preset + ", " + driver.ToString());

            // Save us from working if it is not needed now
            _paused = (driver == AvailableDrivers.Off);

            _queuedPreset = new Preset(preset);
            _needToApplyPreset = true;

            _relay.Connect(driver);

            // If this is the first time applying the preset, it is safe to execute this
            if (!_canStart || manualMode)
            {
                SafeApplyQueuedPreset();
            }
        }
Beispiel #7
0
 public abstract void SetPreset(Preset preset);
Beispiel #8
0
        private void initializePresets()
        {
            // TODO: this should go into appropriate function
            _presets = this.Resources["model"] as PresetModel;
            if (_presets == null)
            {
                throw new NullReferenceException("Could not connect to the preset model");
            }

            var loadedPresets = Preset.LoadPresets();
            foreach (var loadedPreset in loadedPresets)
            {
                _presets.Presets.Add(loadedPreset);
            }

            // IF nothing was loaded, show defaults
            if (_presets.Presets.Count == 0)
            {
                Preset p1 = new Preset();
                Preset p2 = new Preset();
                // Make p1 a high performance preset
                p1.Name = "Low footprint";
                p1.Framerate = 4;
                p1.AveragingParam = 3;
                // P2 should have appropriate names
                p2.Name = "High framerate";
                p1.PropertyChanged += PresetPropertyChanged;
                p2.PropertyChanged += PresetPropertyChanged;
                _presets.Presets.Add(p1); // For now
                _presets.Presets.Add(p2); // For now
                p1.Save();
                p2.Save();
            }
        }
Beispiel #9
0
        internal void ExecutePresetAction(string action)
        {
            Preset selectedPreset = presetList.SelectedItem as Preset;
            if (selectedPreset == null)
            {
                throw new InvalidOperationException("Unable to apply preset: Selected preset is invalid");
            }

            if (action == "Save")
            {
                selectedPreset.Save();
            }
            else if (action == "Duplicate")
            {
                Preset newPreset = new Preset(selectedPreset);
                newPreset.Name += " copy";
                newPreset.Save();
                _presets.Presets.Add(newPreset);
            }
            else if (action == "Remove")
            {
                _presets.Presets.Remove(selectedPreset);
                selectedPreset.Remove();
            }
        }
Beispiel #10
0
        // TODO: this should NOT be in GUI! Perhaps Preset would be a better place.
        public void updateSectors(Preset selectedPreset)
        {
            int i;
            int currentSector = 0;

            int verticalSectorHeight = screenHeight / selectedPreset.VerticalSectors;
            int topSectorWidth = (screenWidth - 2 * selectedPreset.VerticalSectorWidth) / selectedPreset.TopSectors;
            int bottomSectorWidth = ((int)(0.8 * screenWidth) - 2 * selectedPreset.VerticalSectorWidth) / selectedPreset.BottomSectors;
            int bottomSectorGap = (int) (0.1*screenWidth);

            if (2*selectedPreset.VerticalSectors + selectedPreset.TopSectors + selectedPreset.BottomSectors != Config.numberOfLeds)
            {
                return;
            }

            // Bottom edge, right side
            for (i = selectedPreset.BottomSectors / 2; i < selectedPreset.BottomSectors; i++)
            {
                selectedPreset.Sectors[currentSector] = new ScreenshotLogicCPP.Sector(2 * bottomSectorGap + selectedPreset.VerticalSectorWidth + i * bottomSectorWidth, screenHeight - selectedPreset.HorizontalSectorHeight, bottomSectorWidth, selectedPreset.HorizontalSectorHeight, currentSector);
                currentSector++;
            }

            // Right edge
            for (i = 0; i < selectedPreset.VerticalSectors; i++)
            {
                selectedPreset.Sectors[currentSector] = new ScreenshotLogicCPP.Sector(screenWidth - selectedPreset.VerticalSectorWidth, screenHeight - (i + 1) * verticalSectorHeight, selectedPreset.VerticalSectorWidth, verticalSectorHeight, currentSector);
                currentSector++;
            }

            // Top edge
            for (i = 0; i < selectedPreset.TopSectors; i++)
            {
                selectedPreset.Sectors[currentSector] = new ScreenshotLogicCPP.Sector(screenWidth - selectedPreset.VerticalSectorWidth - (i + 1) * topSectorWidth, 0, topSectorWidth, selectedPreset.HorizontalSectorHeight, currentSector);
                currentSector++;
            }

            // Left edge
            for (i = 0; i < selectedPreset.VerticalSectors; i++)
            {
                selectedPreset.Sectors[currentSector] = new ScreenshotLogicCPP.Sector(0, i * verticalSectorHeight, selectedPreset.VerticalSectorWidth, verticalSectorHeight, currentSector);
                currentSector++;
            }

            // Bottom edge, left side
            for (i = 0; i < selectedPreset.BottomSectors / 2; i++)
            {
                selectedPreset.Sectors[currentSector] = new ScreenshotLogicCPP.Sector(selectedPreset.VerticalSectorWidth + i * bottomSectorWidth, screenHeight - selectedPreset.HorizontalSectorHeight, bottomSectorWidth, selectedPreset.HorizontalSectorHeight, currentSector);
                currentSector++;
            }
        }
Beispiel #11
0
        public void SetPreset(Preset p)
        {
            if (_dd == null)
                return;

            _dd.SetPreset(p);
        }
Beispiel #12
0
 public override void SetPreset(Preset preset)
 {
     return;
 }