|
@@ -1,4 +1,5 @@
|
|
|
#include "Launchpad.h"
|
|
|
+#include "RtMidi.h"
|
|
|
#include "MidiMessage.h"
|
|
|
|
|
|
LaunchpadColor::LaunchpadColor()
|
|
@@ -77,6 +78,21 @@ const LaunchpadColor& Launchpad::getColor(unsigned char x, unsigned char y) cons
|
|
|
|
|
|
void Launchpad::setColor(unsigned char x, unsigned char y, const LaunchpadColor& color)
|
|
|
{
|
|
|
+ if(x >= width || y >= height || (x == 8) && (y == 8))
|
|
|
+ {
|
|
|
+ throw RtMidiError(
|
|
|
+ "specified launchpad position is out of range",
|
|
|
+ RtMidiError::INVALID_PARAMETER
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if(color.red > 3 || color.green > 3)
|
|
|
+ {
|
|
|
+ throw RtMidiError(
|
|
|
+ "specified launchpad color is out of range",
|
|
|
+ RtMidiError::INVALID_PARAMETER
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
unsigned char velocity = (color.green << 4) + color.red;
|
|
|
|
|
|
if(y == 8)
|