Ejemplo n.º 1
0
        public void SetLight(FaderPortButton button, FaderPortLightState state)
        {
            lock (_lightState)
            {
                if (state == FaderPortLightState.Toggle)
                {
                    var oldState = _lightState[button];

                    // Everything except a current setting of Off results in a new state of Off
                    state = oldState == FaderPortLightState.Off
                        ? FaderPortLightState.On
                        : FaderPortLightState.Off;
                }

                _lightState[button] = state;
            }

            SetLight(button, state != FaderPortLightState.Off);
        }
Ejemplo n.º 2
0
        private void SetLight(FaderPortButton button, bool on)
        {
            if ((int)button > 0x7f)
            {
                return;
            }

            var radioGroup = GetRadioGroup(button);

            if (radioGroup == null)
            {
                _outputDevice.SendEvent(new NoteAftertouchEvent(Out((byte)button), Out(on)));
                return;
            }

            foreach (var btn in radioGroup)
            {
                _lightState[btn] = FaderPortLightState.Off;
                _outputDevice.SendEvent(new NoteAftertouchEvent(Out((byte)btn), Out(false)));
            }

            _lightState[button] = FaderPortLightState.On;
            _outputDevice.SendEvent(new NoteAftertouchEvent(Out((byte)button), Out(true)));
        }
Ejemplo n.º 3
0
 private void Off(FaderPortButton btn) => _fp.SetLight(btn, FaderPortLightState.Off);
Ejemplo n.º 4
0
 private void Blink(FaderPortButton btn) => _fp.SetLight(btn, FaderPortLightState.Blink);
 public FaderPortButtonEventArgs(FaderPortButton btn, FaderPortButtonState state)
 {
     Button = btn;
     State  = state;
 }
Ejemplo n.º 6
0
 public ButtonMessage(FaderPortButton button, bool pressed, FaderPortLightState light)
 {
     Button  = button;
     Pressed = pressed;
     Light   = light;
 }
Ejemplo n.º 7
0
 private ISet <FaderPortButton> GetRadioGroup(FaderPortButton btn)
 => _radioGroups.FirstOrDefault(g => g.Value.Contains(btn)).Value;