コード例 #1
0
ファイル: ToggleGrid.cs プロジェクト: valeryjacobs/launchpad
        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);
             *      }
             * }
             */
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 public LaunchpadButton GetSideBarButton(int index)
 {
     return Device.GetButton((SideButton)index);
 }
コード例 #5
0
ファイル: Reversi.cs プロジェクト: valeryjacobs/launchpad
        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();
            }
        }