public void Start()
        {
            _photonLedControllerCommunicator = new FakePhotonLedControllerCommunicator();
            _photonLedControllerCommunicator.CycleTimeRead       += _photonLedControllerCommunicator_CycleTimeRead;
            _photonLedControllerCommunicator.TimeProgressRead    += _photonLedControllerCommunicator_TimeProgressRead;
            _photonLedControllerCommunicator.ColorTimePointsRead += _photonLedControllerCommunicator_ColorTimePointsRead;
            _photonLedControllerCommunicator.Start();

            _rootSurface = new RootSurfaceComponent(_photonLedControllerCommunicator);

            _photonLedControllerCommunicator.ReadCycleTime();
            _photonLedControllerCommunicator.ReadColorTimePoints();
            _photonLedControllerPollingService = new PhotonLedControllerPollingService(_photonLedControllerCommunicator);
            _photonLedControllerPollingService.Start();

            _engine.Start();
        }
Beispiel #2
0
        public ColorTimePointSlider(ColorTimeLineDrawingConfig drawingConfig, byte id, SKColor color, float time, IColorPicker colorPicker, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _id = id;
            var sliderBody = new CircularSliderBody(_worldDimensions.Center, _worldDimensions.ColorsCircleRadius);

            _slider = new Slider <float>(_drawingConfig, time, color, _worldDimensions.ColorsCircleWidth, false, true, sliderBody);
            AddChild(_slider);
            _colorPicker = colorPicker;
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _slider.ValueChanged      += _slider_ValueChanged;
            _slider.IsSelectedChanged += _slider_IsSelectedChanged;

            _colorPicker.ColorChanged += ColorComponent_ColorChanged;
        }
Beispiel #3
0
        public TimeProgressSlider(ColorTimeLineDrawingConfig drawingConfig, SKColor initialColor, float initialTimeProgress, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _track = new CircularTrack(_worldDimensions.Center, _worldDimensions.ProgressCircleRadius, _worldDimensions.ProgressCircleWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_track);

            var sliderBody = new CircularSliderBody(_worldDimensions.Center, _worldDimensions.ProgressCircleRadius);

            _slider = new Slider <float>(_drawingConfig, initialTimeProgress, initialColor, _worldDimensions.ProgressCircleWidth, false, true, sliderBody);
            _slider.ValueChanged += _slider_ValueChanged;
            AddChild(_slider);

            _cycleTimeSlider           = new CycleTimeSlider(_drawingConfig, _photonLedControllerCommunicator);
            _cycleTimeSlider.IsEnabled = false;
            AddChild(_cycleTimeSlider);
        }
Beispiel #4
0
        public CycleTimeSlider(ColorTimeLineDrawingConfig drawingConfig, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _x0 = _worldDimensions.InnerHorizontalSlidersX0;
            _x1 = _worldDimensions.InnerHorizontalSlidersX1;
            _y  = _worldDimensions.InnerHorizontalSlidersY0of1;
            _p0 = new SKPoint(_x0, _y);
            _p1 = new SKPoint(_x1, _y);

            _track = new LinearTrack(_p0, _p1, _worldDimensions.InnerHorizontalSliderBarWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_track);

            var sliderBody = new LinearSliderBody(_p0, _p1);

            _slider = new Slider <float>(_drawingConfig, 0, SKColors.Black, _worldDimensions.InnerHorizontalSliderBarWidth, false, false, sliderBody);
            _slider.ValueChanged += _slider_ValueChanged;
            AddChild(_slider);
        }
        public RootSurfaceComponent(IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            // Dependencies.

            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            // Drawing configuration.

            _drawingConfig   = new ColorTimeLineDrawingConfig();
            _worldDimensions = _drawingConfig.WorldDimensions();

            // Initialize color positions.
            _colorPositions = new ColorPositions(new ColorPosition[0]);

            // Gradient circle component.

            _gradientCircularTrack = new CircularTrack(_worldDimensions.Center, _worldDimensions.GradientCircleRadius, _worldDimensions.GradientCircleWidth, 360, _colorPositions);
            AddChild(_gradientCircularTrack);

            // Track for color time points.

            _colorTimePointsTrack = new CircularTrack(_worldDimensions.Center, _worldDimensions.ColorsCircleRadius, _worldDimensions.ColorsCircleWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_colorTimePointsTrack);

            // Container for color time point sliders - the only sliders which number is dynamic so generic list is used here.

            _colorTimePointSliders = new List <ColorTimePointSlider>();

            // Color picker.
            _colorPicker           = new HsvColorPicker(_drawingConfig);
            _colorPicker.IsEnabled = false;
            AddChild(_colorPicker);

            // Time progress slider with cycle time slider inside.

            _timeProgressSlider = new TimeProgressSlider(_drawingConfig, SKColors.Black, _timeProgress, _photonLedControllerCommunicator);
            _timeProgressSlider.Slider.IsSelectedChanged += Slider_IsSelectedChanged;
            AddChild(_timeProgressSlider);
        }
Beispiel #6
0
 public PhotonLedControllerPollingService(IPhotonLedControllerCommunicator communicator)
 {
     _communicator = communicator;
 }