Control Surface master
MIDI Control Surface library for Arduino
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
ChannelMessage Struct Reference

#include <MIDI_Parsers/MIDI_MessageTypes.hpp>

Detailed Description

Examples
MIDI-Input-Callback.ino, MIDI-Input.ino, and Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 175 of file MIDI_MessageTypes.hpp.

+ Inheritance diagram for ChannelMessage:
+ Collaboration diagram for ChannelMessage:

Public Member Functions

 ChannelMessage (MIDIMessageType type, Channel channel, uint8_t data1, uint8_t data2=0x00, Cable cable=CABLE_1)
 Constructor. More...
 
 ChannelMessage (const MIDIMessage &msg)
 
MIDIMessageType getMessageType () const
 Get the MIDI message type. More...
 
void setMessageType (MIDIMessageType type)
 Set the MIDI message type. More...
 
Channel getChannel () const
 Get the MIDI channel of the message. More...
 
void setChannel (Channel channel)
 Set the MIDI channel of the message. More...
 
MIDIChannelCable getChannelCable () const
 Get the MIDI channel and cable number. More...
 
MIDIAddress getAddress () const
 Get the MIDI address of this message, using data1 as the address. More...
 
bool hasTwoDataBytes () const
 Check whether this message has one or two data bytes. More...
 
 MIDIMessage (uint8_t header, uint8_t data1, uint8_t data2, Cable cable=CABLE_1)
 Constructor. More...
 
 MIDIMessage (MIDIMessageType header, uint8_t data1, uint8_t data2, Cable cable=CABLE_1)
 Constructor. More...
 
bool operator== (MIDIMessage other) const
 Check for equality. More...
 
bool operator!= (MIDIMessage other) const
 Check for inequality. More...
 
uint8_t getData1 () const
 Get the first data byte. More...
 
uint8_t getData2 () const
 Get the second data byte. More...
 
void setData1 (uint8_t data)
 Set the first data byte. More...
 
void setData2 (uint8_t data)
 Set the second data byte. More...
 
Cable getCable () const
 Get the MIDI USB cable number of the message. More...
 
void setCable (Cable cable)
 Set the MIDI USB cable number of the message. More...
 
bool hasValidChannelMessageHeader () const
 Check whether the header is a valid header for a channel message. More...
 
bool hasValidSystemCommonHeader () const
 Check whether the header is a valid header for a System Common message. More...
 
uint16_t getData14bit () const
 If Data 1 and Data 2 represent a single 14-bit number, you can use this method to retrieve that number. More...
 
void setData14bit (uint16_t data)
 If Data 1 and Data 2 represent a single 14-bit number, you can use this method to set that number. More...
 
void sanitize ()
 Make sure that the status byte has the most significant bit set and the data bytes have the most significant bits cleared. More...
 

Public Attributes

uint8_t header
 MIDI status byte (message type and channel). More...
 
uint8_t data1
 First MIDI data byte. More...
 
uint8_t data2
 First MIDI data byte. More...
 
Cable cable
 USB MIDI cable number;. More...
 

Static Public Attributes

constexpr static auto NOTE_OFF = MIDIMessageType::NOTE_OFF
 
constexpr static auto NOTE_ON = MIDIMessageType::NOTE_ON
 
constexpr static auto KEY_PRESSURE = MIDIMessageType::KEY_PRESSURE
 
constexpr static auto CC = MIDIMessageType::CC
 
constexpr static auto CONTROL_CHANGE = MIDIMessageType::CONTROL_CHANGE
 
constexpr static auto PROGRAM_CHANGE = MIDIMessageType::PROGRAM_CHANGE
 
constexpr static auto CHANNEL_PRESSURE = MIDIMessageType::CHANNEL_PRESSURE
 
constexpr static auto PITCH_BEND = MIDIMessageType::PITCH_BEND
 

Constructor & Destructor Documentation

◆ ChannelMessage() [1/2]

ChannelMessage ( MIDIMessageType  type,
Channel  channel,
uint8_t  data1,
uint8_t  data2 = 0x00,
Cable  cable = CABLE_1 
)
inline

Constructor.

Definition at line 179 of file MIDI_MessageTypes.hpp.

◆ ChannelMessage() [2/2]

ChannelMessage ( const MIDIMessage msg)
inlineexplicit

Definition at line 183 of file MIDI_MessageTypes.hpp.

Member Function Documentation

◆ getMessageType()

MIDIMessageType getMessageType ( ) const
inline

Get the MIDI message type.

Examples
Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 186 of file MIDI_MessageTypes.hpp.

◆ setMessageType()

void setMessageType ( MIDIMessageType  type)
inline

Set the MIDI message type.

Definition at line 190 of file MIDI_MessageTypes.hpp.

◆ getChannel()

Channel getChannel ( ) const
inline

Get the MIDI channel of the message.

Definition at line 196 of file MIDI_MessageTypes.hpp.

◆ setChannel()

void setChannel ( Channel  channel)
inline

Set the MIDI channel of the message.

Definition at line 198 of file MIDI_MessageTypes.hpp.

◆ getChannelCable()

MIDIChannelCable getChannelCable ( ) const
inline

Get the MIDI channel and cable number.

Note
Valid for all MIDI Channel messages, including Channel Pressure and Pitch Bend.

Definition at line 206 of file MIDI_MessageTypes.hpp.

◆ getAddress()

MIDIAddress getAddress ( ) const
inline

Get the MIDI address of this message, using data1 as the address.

Note
Don't use this for Channel Pressure or Pitch Bend messages, as data1 will have a different meaning in those cases.

Definition at line 210 of file MIDI_MessageTypes.hpp.

◆ hasTwoDataBytes()

bool hasTwoDataBytes ( ) const
inline

Check whether this message has one or two data bytes.

  • 2 data bytes: Note On/Off, Aftertouch, Control Change or Pitch Bend
  • 1 data byte: Program Change or Channel Pressure

Returns false if the header is a SysEx, Real-Time or System Common byte.

Definition at line 218 of file MIDI_MessageTypes.hpp.

◆ MIDIMessage() [1/2]

MIDIMessage ( uint8_t  header,
uint8_t  data1,
uint8_t  data2,
Cable  cable = CABLE_1 
)
inline

Constructor.

Definition at line 87 of file MIDI_MessageTypes.hpp.

◆ MIDIMessage() [2/2]

MIDIMessage ( MIDIMessageType  header,
uint8_t  data1,
uint8_t  data2,
Cable  cable = CABLE_1 
)
inline

Constructor.

Definition at line 92 of file MIDI_MessageTypes.hpp.

◆ operator==()

bool operator== ( MIDIMessage  other) const
inlineinherited

Check for equality.

Definition at line 103 of file MIDI_MessageTypes.hpp.

◆ operator!=()

bool operator!= ( MIDIMessage  other) const
inlineinherited

Check for inequality.

Definition at line 108 of file MIDI_MessageTypes.hpp.

◆ getData1()

uint8_t getData1 ( ) const
inlineinherited

Get the first data byte.

Examples
Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 126 of file MIDI_MessageTypes.hpp.

◆ getData2()

uint8_t getData2 ( ) const
inlineinherited

Get the second data byte.

Examples
Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 128 of file MIDI_MessageTypes.hpp.

◆ setData1()

void setData1 ( uint8_t  data)
inlineinherited

Set the first data byte.

Definition at line 130 of file MIDI_MessageTypes.hpp.

◆ setData2()

void setData2 ( uint8_t  data)
inlineinherited

Set the second data byte.

Definition at line 132 of file MIDI_MessageTypes.hpp.

◆ getCable()

Cable getCable ( ) const
inlineinherited

Get the MIDI USB cable number of the message.

Definition at line 135 of file MIDI_MessageTypes.hpp.

◆ setCable()

void setCable ( Cable  cable)
inlineinherited

Set the MIDI USB cable number of the message.

Definition at line 137 of file MIDI_MessageTypes.hpp.

◆ hasValidChannelMessageHeader()

bool hasValidChannelMessageHeader ( ) const
inlineinherited

Check whether the header is a valid header for a channel message.

Definition at line 140 of file MIDI_MessageTypes.hpp.

◆ hasValidSystemCommonHeader()

bool hasValidSystemCommonHeader ( ) const
inlineinherited

Check whether the header is a valid header for a System Common message.

Note
SysExEnd is considered a System Common message by the MIDI Standard, SysExStart is not.
Reserved System Common messages are also considered valid System Common messages.

Definition at line 150 of file MIDI_MessageTypes.hpp.

◆ getData14bit()

uint16_t getData14bit ( ) const
inlineinherited

If Data 1 and Data 2 represent a single 14-bit number, you can use this method to retrieve that number.

Definition at line 156 of file MIDI_MessageTypes.hpp.

◆ setData14bit()

void setData14bit ( uint16_t  data)
inlineinherited

If Data 1 and Data 2 represent a single 14-bit number, you can use this method to set that number.

Definition at line 161 of file MIDI_MessageTypes.hpp.

◆ sanitize()

void sanitize ( )
inlineinherited

Make sure that the status byte has the most significant bit set and the data bytes have the most significant bits cleared.

Definition at line 168 of file MIDI_MessageTypes.hpp.

Member Data Documentation

◆ NOTE_OFF

constexpr static auto NOTE_OFF = MIDIMessageType::NOTE_OFF
staticconstexpr

Definition at line 224 of file MIDI_MessageTypes.hpp.

◆ NOTE_ON

constexpr static auto NOTE_ON = MIDIMessageType::NOTE_ON
staticconstexpr

Definition at line 225 of file MIDI_MessageTypes.hpp.

◆ KEY_PRESSURE

constexpr static auto KEY_PRESSURE = MIDIMessageType::KEY_PRESSURE
staticconstexpr

Definition at line 226 of file MIDI_MessageTypes.hpp.

◆ CC

constexpr static auto CC = MIDIMessageType::CC
staticconstexpr

Definition at line 227 of file MIDI_MessageTypes.hpp.

◆ CONTROL_CHANGE

constexpr static auto CONTROL_CHANGE = MIDIMessageType::CONTROL_CHANGE
staticconstexpr

Definition at line 228 of file MIDI_MessageTypes.hpp.

◆ PROGRAM_CHANGE

constexpr static auto PROGRAM_CHANGE = MIDIMessageType::PROGRAM_CHANGE
staticconstexpr

Definition at line 229 of file MIDI_MessageTypes.hpp.

◆ CHANNEL_PRESSURE

constexpr static auto CHANNEL_PRESSURE = MIDIMessageType::CHANNEL_PRESSURE
staticconstexpr

Definition at line 230 of file MIDI_MessageTypes.hpp.

◆ PITCH_BEND

constexpr static auto PITCH_BEND = MIDIMessageType::PITCH_BEND
staticconstexpr

Definition at line 231 of file MIDI_MessageTypes.hpp.

◆ header

uint8_t header
inherited

MIDI status byte (message type and channel).

Examples
MIDI-Input-Callback.ino, MIDI-Input.ino, and Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 96 of file MIDI_MessageTypes.hpp.

◆ data1

uint8_t data1
inherited

◆ data2

uint8_t data2
inherited

◆ cable

Cable cable
inherited

USB MIDI cable number;.

Examples
MIDI-Input-Callback.ino, MIDI-Input.ino, and Mackie-Control-Universal-Reverse-Engineering.ino.

Definition at line 100 of file MIDI_MessageTypes.hpp.


The documentation for this struct was generated from the following file: