public ToggleGrid(LaunchpadDevice device) { mLaunchpadDevice = device; mLaunchpadDevice.DoubleBuffered = false; mLaunchpadDevice.ButtonPressed += mLaunchpadDevice_ButtonPressed; mLaunchpadDevice.GetButton(ToolbarButton.Session).SetBrightness(ButtonBrightness.Full, ButtonBrightness.Full); /* * for (int y = 0; y < 4; y++) { * for (int x = 0; x < 4; x++) { * mLaunchpadDevice[x, y].SetBrightness((ButtonBrightness)x, (ButtonBrightness)y); * } * } */ }
private void Draw() { ButtonBrightness[,] redgrid = new ButtonBrightness[8, 8]; ButtonBrightness[,] greengrid = new ButtonBrightness[8, 8]; for (int y = 0; y < 7; y++) { for (int x = 0; x < 8; x++) { if (mSequence[ButtonXtoColX(x), ButtonYtoSeqY(y)]) { redgrid[x, y] = greengrid[x, y] = ButtonBrightness.Full; } } } for (int x = 0; x < 8; x++) { ButtonBrightness brightness = (mSequence[ButtonXtoColX(x), ButtonYtoSeqY(7)] ? ButtonBrightness.Full : ButtonBrightness.Low); if (!mRemove[ButtonXtoColX(x)]) { greengrid[x, 7] = brightness; } else { redgrid[x, 7] = brightness; } } for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { mLaunchpadDevice[x, y].SetBrightness(redgrid[x, y], greengrid[x, y]); } } if (mConfirmTime > 0) { mLaunchpadDevice.GetButton(ToolbarButton.Session).TurnOnLight(); } else { mLaunchpadDevice.GetButton(ToolbarButton.Session).TurnOffLight(); } if (mMode == 1) { mLaunchpadDevice.GetButton(ToolbarButton.Mixer).SetBrightness(ButtonBrightness.Full, ButtonBrightness.Off); } else { mLaunchpadDevice.GetButton(ToolbarButton.Mixer).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Full); } if (mSoundType == 0) { mLaunchpadDevice.GetButton(SideButton.SoundA).TurnOnLight(); mLaunchpadDevice.GetButton(SideButton.SoundB).TurnOffLight(); } else { mLaunchpadDevice.GetButton(SideButton.SoundA).TurnOffLight(); mLaunchpadDevice.GetButton(SideButton.SoundB).TurnOnLight(); } mLaunchpadDevice.GetButton(ToolbarButton.Up).TurnOnLight(); mLaunchpadDevice.GetButton(ToolbarButton.Down).TurnOnLight(); mLaunchpadDevice.GetButton(ToolbarButton.Left).TurnOnLight(); mLaunchpadDevice.GetButton(ToolbarButton.Right).TurnOnLight(); mLaunchpadDevice.GetButton(SideButton.Volume).TurnOnLight(); mLaunchpadDevice.GetButton(SideButton.Pan).TurnOnLight(); mLaunchpadDevice.GetButton(SideButton.Arm).TurnOnLight(); mLaunchpadDevice.Refresh(); Console.SetCursorPosition(0, 0); for (int y = 0; y < NumRows; y++) { for (int x = 0; x < NumCols; x++) { if (mSequence[x, y]) { Console.Write("X"); } else { Console.Write("."); } } Console.WriteLine(); } }
private void _device_ButtonPressed(object sender, ButtonPressEventArgs e) { var evt = new LaunchPadButtonEvent { Event = e }; var btnName = "Unknown"; if (e.Type == ButtonType.Grid) { evt.Button = _device[e.X, e.Y]; btnName = $"Grid({e.X},{e.Y})"; } if (e.Type == ButtonType.Toolbar) { evt.Button = _device.GetButton(e.ToolbarButton); btnName = $"Toolbar({e.ToolbarButton})"; } if (e.Type == ButtonType.Side) { evt.Button = _device.GetButton(e.SidebarButton); btnName = $"Side({e.SidebarButton})"; } evt.Color = GetColor(evt.Button.RedBrightness, evt.Button.GreenBrightness); evt.ButtonId = btnName; Log($"Button Event ({evt.ButtonId}) > {evt.Button.State}"); string activeButtonStateText = null; lock (_activeButtons) { var btn = _activeButtons.Find((x) => x.Button == evt.Button); if (evt.Button.State == ButtonPressState.Up && btn != null) { _activeButtons.Remove(btn); activeButtonStateText = $"Deactivated, held for {(DateTime.Now - btn.TimePressed).TotalMilliseconds} ms."; } if (evt.Button.State == ButtonPressState.Down && btn == null) { var bs = new ButtonState { Button = evt.Button, LastEvent = evt, TimePressed = DateTime.Now }; _activeButtons.Add(bs); activeButtonStateText = "Activated."; } else if (evt.Button.State == ButtonPressState.Down && btn != null) { btn.TimePressed = DateTime.Now; btn.LastEvent = evt; activeButtonStateText = "Activated Again?"; } } if (activeButtonStateText != null) { Log($"Button Activity ({evt.ButtonId}) > {activeButtonStateText}"); } OnButtonChange?.Invoke(this, evt); if (e.Type == ButtonType.Grid) { OnGridButtonChange?.Invoke(this, evt); } if (e.Type == ButtonType.Toolbar) { OnToolbarButtonChange?.Invoke(this, evt); } if (e.Type == ButtonType.Side) { OnSideButtonChange?.Invoke(this, evt); } }
public LaunchpadButton GetSideBarButton(int index) { return Device.GetButton((SideButton)index); }
private void Draw() { ButtonBrightness[,] redgrid = new ButtonBrightness[8, 8]; ButtonBrightness[,] greengrid = new ButtonBrightness[8, 8]; for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { if (mGrid[x, y] == 1) { redgrid[x, y] = ButtonBrightness.Full; } else if (mGrid[x, y] == 2) { greengrid[x, y] = ButtonBrightness.Full; } else if (mShowPossibleMoves && mFlashCounter < 10) { if (mPossiblePlaces.Exists(p => p.Item1 == x && p.Item2 == y)) { redgrid[x, y] = ButtonBrightness.Low; greengrid[x, y] = ButtonBrightness.Low; } } } } for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { mLaunchpadDevice[x, y].SetBrightness(redgrid[x, y], greengrid[x, y]); } } if (mPlayerTurn == 1) { mLaunchpadDevice.GetButton(ToolbarButton.User1).SetBrightness(ButtonBrightness.Full, ButtonBrightness.Off); mLaunchpadDevice.GetButton(ToolbarButton.User2).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Off); } else if (mPlayerTurn == 2) { mLaunchpadDevice.GetButton(ToolbarButton.User1).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Off); mLaunchpadDevice.GetButton(ToolbarButton.User2).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Full); } if (mPlayerWinning == 1) { mLaunchpadDevice.GetButton(ToolbarButton.Mixer).SetBrightness(ButtonBrightness.Full, ButtonBrightness.Off); } else if (mPlayerWinning == 2) { mLaunchpadDevice.GetButton(ToolbarButton.Mixer).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Full); } else { mLaunchpadDevice.GetButton(ToolbarButton.Mixer).SetBrightness(ButtonBrightness.Off, ButtonBrightness.Off); } if (mShowPossibleMoves) { mLaunchpadDevice.GetButton(SideButton.TrackOn).TurnOnLight(); } else { mLaunchpadDevice.GetButton(SideButton.TrackOn).TurnOffLight(); } if (mConfirmTime > 0) { mLaunchpadDevice.GetButton(ToolbarButton.Session).TurnOnLight(); } else { mLaunchpadDevice.GetButton(ToolbarButton.Session).TurnOffLight(); } if (mSolo) { mLaunchpadDevice.GetButton(SideButton.Solo).TurnOnLight(); } else { mLaunchpadDevice.GetButton(SideButton.Solo).TurnOffLight(); } }