/// <summary> /// Creates the objects that represent the grid buttons /// </summary> void CreateGridButtons() { for (var y = 0; y < 8; y++) { for (var x = 0; x < 8; x++) { Grid[x, y] = new LaunchpadMk2Button(0, x, y, Colors.Black, outPort); } } }
public LaunchpadMk2(string name, MidiInPort inPort = null, IMidiOutPort outPort = null) { Name = name; this.inPort = inPort; this.outPort = outPort; gridButtons = new List <LaunchpadMk2Button>(); resetCount = 0; sideButtons = new List <LaunchpadMk2Button>(); topButtons = new List <LaunchpadMk2TopButton>(); Grid = new LaunchpadMk2Button[8, 8]; GridBuffer = new Color[8, 8]; BuildButtons(); // Process resets triggered from launchpad resetTimer = new Timer((state) => { // If the user is pressing the 4 corner grid buttons if (Grid[0, 0].State == LaunchpadButtonState.Pressed && Grid[0, 7].State == LaunchpadButtonState.Pressed && Grid[7, 7].State == LaunchpadButtonState.Pressed && Grid[7, 0].State == LaunchpadButtonState.Pressed) { Debug.WriteLine("Reset in " + (10 - resetCount).ToString() + " seconds."); // Increase the reset count resetCount++; // If the user has held the buttons for 10 seconds if (resetCount > 10) { Debug.WriteLine("Launchpad was reset."); // Reset the count resetCount = 0; // Notify anyone interested in the event whenReset.OnNext(Unit.Default); } } else // If the user is not pressing the 4 corner buttons { // Reset the count resetCount = 0; } }, null, 0, 1000); // Flag as simulated mode if no connection provided IsSimulated = inPort == null || outPort == null; if (!IsSimulated) { // Process messages from device inPort.MessageReceived += InPort_MessageReceived; } }
/// <summary> /// Binds the Launchpad Ui control to the values of a LaunchpadMk2 model /// </summary> void UpdateButtons() { // Bind to all the top buttons if (LaunchpadMk2?.TopButtons != null) { Top104 = LaunchpadMk2.TopButtons[0]; Top105 = LaunchpadMk2.TopButtons[1]; Top106 = LaunchpadMk2.TopButtons[2]; Top107 = LaunchpadMk2.TopButtons[3]; Top108 = LaunchpadMk2.TopButtons[4]; Top109 = LaunchpadMk2.TopButtons[5]; Top110 = LaunchpadMk2.TopButtons[6]; Top111 = LaunchpadMk2.TopButtons[7]; } // Bind to the grid buttons if (LaunchpadMk2?.Grid != null) { Grid00 = LaunchpadMk2.Grid[0, 0]; Grid10 = LaunchpadMk2.Grid[1, 0]; Grid20 = LaunchpadMk2.Grid[2, 0]; Grid30 = LaunchpadMk2.Grid[3, 0]; Grid40 = LaunchpadMk2.Grid[4, 0]; Grid50 = LaunchpadMk2.Grid[5, 0]; Grid60 = LaunchpadMk2.Grid[6, 0]; Grid70 = LaunchpadMk2.Grid[7, 0]; Grid01 = LaunchpadMk2.Grid[0, 1]; Grid11 = LaunchpadMk2.Grid[1, 1]; Grid21 = LaunchpadMk2.Grid[2, 1]; Grid31 = LaunchpadMk2.Grid[3, 1]; Grid41 = LaunchpadMk2.Grid[4, 1]; Grid51 = LaunchpadMk2.Grid[5, 1]; Grid61 = LaunchpadMk2.Grid[6, 1]; Grid71 = LaunchpadMk2.Grid[7, 1]; Grid02 = LaunchpadMk2.Grid[0, 2]; Grid12 = LaunchpadMk2.Grid[1, 2]; Grid22 = LaunchpadMk2.Grid[2, 2]; Grid32 = LaunchpadMk2.Grid[3, 2]; Grid42 = LaunchpadMk2.Grid[4, 2]; Grid52 = LaunchpadMk2.Grid[5, 2]; Grid62 = LaunchpadMk2.Grid[6, 2]; Grid72 = LaunchpadMk2.Grid[7, 2]; Grid03 = LaunchpadMk2.Grid[0, 3]; Grid13 = LaunchpadMk2.Grid[1, 3]; Grid23 = LaunchpadMk2.Grid[2, 3]; Grid33 = LaunchpadMk2.Grid[3, 3]; Grid43 = LaunchpadMk2.Grid[4, 3]; Grid53 = LaunchpadMk2.Grid[5, 3]; Grid63 = LaunchpadMk2.Grid[6, 3]; Grid73 = LaunchpadMk2.Grid[7, 3]; Grid04 = LaunchpadMk2.Grid[0, 4]; Grid14 = LaunchpadMk2.Grid[1, 4]; Grid24 = LaunchpadMk2.Grid[2, 4]; Grid34 = LaunchpadMk2.Grid[3, 4]; Grid44 = LaunchpadMk2.Grid[4, 4]; Grid54 = LaunchpadMk2.Grid[5, 4]; Grid64 = LaunchpadMk2.Grid[6, 4]; Grid74 = LaunchpadMk2.Grid[7, 4]; Grid05 = LaunchpadMk2.Grid[0, 5]; Grid15 = LaunchpadMk2.Grid[1, 5]; Grid25 = LaunchpadMk2.Grid[2, 5]; Grid35 = LaunchpadMk2.Grid[3, 5]; Grid45 = LaunchpadMk2.Grid[4, 5]; Grid55 = LaunchpadMk2.Grid[5, 5]; Grid65 = LaunchpadMk2.Grid[6, 5]; Grid75 = LaunchpadMk2.Grid[7, 5]; Grid06 = LaunchpadMk2.Grid[0, 6]; Grid16 = LaunchpadMk2.Grid[1, 6]; Grid26 = LaunchpadMk2.Grid[2, 6]; Grid36 = LaunchpadMk2.Grid[3, 6]; Grid46 = LaunchpadMk2.Grid[4, 6]; Grid56 = LaunchpadMk2.Grid[5, 6]; Grid66 = LaunchpadMk2.Grid[6, 6]; Grid76 = LaunchpadMk2.Grid[7, 6]; Grid07 = LaunchpadMk2.Grid[0, 7]; Grid17 = LaunchpadMk2.Grid[1, 7]; Grid27 = LaunchpadMk2.Grid[2, 7]; Grid37 = LaunchpadMk2.Grid[3, 7]; Grid47 = LaunchpadMk2.Grid[4, 7]; Grid57 = LaunchpadMk2.Grid[5, 7]; Grid67 = LaunchpadMk2.Grid[6, 7]; Grid77 = LaunchpadMk2.Grid[7, 7]; } // Bind to all the side buttons if (LaunchpadMk2?.SideButtons != null) { Side70 = LaunchpadMk2.SideButtons[0]; Side71 = LaunchpadMk2.SideButtons[1]; Side72 = LaunchpadMk2.SideButtons[2]; Side73 = LaunchpadMk2.SideButtons[3]; Side74 = LaunchpadMk2.SideButtons[4]; Side75 = LaunchpadMk2.SideButtons[5]; Side76 = LaunchpadMk2.SideButtons[6]; Side77 = LaunchpadMk2.SideButtons[7]; } Bindings.Update(); }