Пример #1
0
        void MouseEnter(IControl control, KeyModifiers mods)
        {
            int index = Array.IndexOf(Buttons, control);

            PadPressed?.Invoke(index);
            PadModsPressed?.Invoke(index, mods);
        }
Пример #2
0
        private void HandleControlChangeEvent(MidiInMessageEventArgs e)
        {
            ControlChangeEvent controlChangeEvent = (ControlChangeEvent)e.MidiEvent;
            int controllerIndex = (int)controlChangeEvent.Controller;

            if (controllerIndex > 9 && controllerIndex < 26)
            {
                PadPressed.Execute(new PadPressedEvent(controllerIndex, controlChangeEvent.ControllerValue == 127)).Subscribe().Dispose();
            }

            switch (controllerIndex)
            {
            case 2:     // BRIGHTNESS
            {
                _stellaServer.Animator.StoryboardTransformationController.SetBrightnessCorrection(
                    ConvertToBrightnessScale(controlChangeEvent.ControllerValue));
                break;
            }

            case 9:     // SPEED
            {
                int value = controlChangeEvent.ControllerValue;
                if (value == 127)
                {
                    value = 1000;
                }


                _stellaServer.Animator.StoryboardTransformationController.SetTimeUnitsPerFrame((int)(value));
                break;
            }

            case 6:     // RED
            {
                var master = _stellaServer.Animator?.StoryboardTransformationController.Settings.MasterSettings;
                if (master == null)
                {
                    return;
                }


                _stellaServer.Animator.StoryboardTransformationController.SetRgbFadeCorrection(new float[3]
                    {
                        ConvertControllerValueToPercentage(controlChangeEvent.ControllerValue),
                        master.RgbFadeCorrection[1],
                        master.RgbFadeCorrection[2],
                    });
            }
            break;

            case 7:     // GREEN
            {
                var master = _stellaServer.Animator?.StoryboardTransformationController.Settings.MasterSettings;
                if (master == null)
                {
                    return;
                }

                _stellaServer.Animator.StoryboardTransformationController.SetRgbFadeCorrection(new float[3]
                    {
                        master.RgbFadeCorrection[0],
                        ConvertControllerValueToPercentage(controlChangeEvent.ControllerValue),
                        master.RgbFadeCorrection[2],
                    });
            }
            break;

            case 8:     // BLUE
            {
                var master = _stellaServer.Animator?.StoryboardTransformationController.Settings.MasterSettings;
                if (master == null)
                {
                    return;
                }

                _stellaServer.Animator.StoryboardTransformationController.SetRgbFadeCorrection(new float[3]
                    {
                        master.RgbFadeCorrection[0],
                        master.RgbFadeCorrection[1],
                        ConvertControllerValueToPercentage(controlChangeEvent.ControllerValue),
                    });
            }
            break;

            case 62:     // PAUZE
            {
                var master = _stellaServer.Animator?.StoryboardTransformationController.Settings.MasterSettings;
                if (master == null)
                {
                    return;
                }

                _stellaServer.Animator.StoryboardTransformationController.SetIsPaused(
                    controlChangeEvent.ControllerValue == 127);
            }
            break;

            case 40:     // STOP
            {
                if (controlChangeEvent.ControllerValue == 127)
                {
                    Stop.Execute().Subscribe().Dispose();
                }
            }
            break;
            }
        }