Pārlūkot izejas kodu

implemented Launchpad::setColor()

Fabian Peter Hammerle 11 gadi atpakaļ
vecāks
revīzija
fec78cbc05
2 mainītis faili ar 24 papildinājumiem un 2 dzēšanām
  1. 22 2
      Launchpad.cpp
  2. 2 0
      Launchpad.h

+ 22 - 2
Launchpad.cpp

@@ -10,8 +10,6 @@ Launchpad::Launchpad()
 	midiin.openPort(0);
 }
 
-#include <iostream>
-
 void Launchpad::midiMessageCallback(double timeStamp, MidiMessage &message, void *userData)
 {
 	Launchpad *launchpad = (Launchpad*) userData;
@@ -53,6 +51,28 @@ void Launchpad::midiMessageCallback(double timeStamp, MidiMessage &message, void
 	}
 }
 
+void Launchpad::setColor(unsigned char x, unsigned char y, unsigned char red, unsigned char green)
+{
+	unsigned char velocity = (green << 4) + red;
+
+	if(y == 8)
+	{
+		midiout.sendMessage(ControlChangeMessage(
+			0, 
+			104 + x,
+			velocity
+			));
+	}
+	else
+	{
+		midiout.sendMessage(NoteOnMessage(
+			0, 
+			((7 - y) << 4) + x,
+			velocity
+			));
+	}
+}
+
 void Launchpad::keyPressed(unsigned char x, unsigned char y)
 {
 	if(keyPressedCallback)

+ 2 - 0
Launchpad.h

@@ -17,6 +17,8 @@ public:
 
 	Launchpad();
 
+	void setColor(unsigned char x, unsigned char y, unsigned char red, unsigned char green);
+
 protected:
 	void keyPressed(unsigned char x, unsigned char y);
 	void keyReleased(unsigned char x, unsigned char y);