瀏覽代碼

added constants to messages specifying the maximum values of their properties

Fabian Peter Hammerle 11 年之前
父節點
當前提交
8b8c739cb1
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      MidiMessage.h

+ 8 - 0
MidiMessage.h

@@ -15,6 +15,7 @@ class ChannelMessage : public MidiMessage
 {
 public:
 	unsigned char channel;
+	static const unsigned char channelMaximum = (2 << 4) - 1;
 
 	ChannelMessage(unsigned char channel)
 		: channel(channel)
@@ -26,7 +27,9 @@ class NoteMessage : public ChannelMessage
 {
 public:
 	unsigned char pitch;
+	static const unsigned char pitchMaximum = (1 << 7) - 1;
 	unsigned char velocity;
+	static const unsigned char velocityMaximum = (2 << 7) - 1;
 
 	NoteMessage(unsigned char channel, unsigned char pitch, unsigned char velocity)
 		: ChannelMessage(channel), pitch(pitch), velocity(velocity)
@@ -60,7 +63,9 @@ class ControlChangeMessage : public ChannelMessage
 {
 public:
 	unsigned char control;
+	static const unsigned char controlMaximum = (2 << 7) - 1;
 	unsigned char value;
+	static const unsigned char valueMaximum = (2 << 7) - 1;
 
 	ControlChangeMessage(unsigned char channel, unsigned char control, unsigned char value)
 		: ChannelMessage(channel), control(control), value(value)
@@ -74,6 +79,7 @@ class ProgramChangeMessage : public ChannelMessage
 {
 public:
 	unsigned char program;
+	static const unsigned char programMaximum = (2 << 7) - 1;
 
 	ProgramChangeMessage(unsigned char channel, unsigned char program)
 		: ChannelMessage(channel), program(program)
@@ -86,7 +92,9 @@ public:
 class PitchBendChangeMessage : public ChannelMessage
 {
 public:
+	// 14 bit integer
 	uint16_t value;
+	static const uint16_t valueMaximum = (2 << 14) - 1;
 
 	PitchBendChangeMessage(unsigned char channel, uint16_t value)
 		: ChannelMessage(channel), value(value)