#include <Def/MIDIAddress.hpp>
A type-safe utility class for saving a MIDI address consisting of a 7-bit address, a 4-bit channel, and a 4-bit cable number.
A MIDI address can be marked "invalid". The MIDI sending functions (MIDI_Sender) will never send messages addressed to invalid addresses.
See MIDI Tutorial: MIDI addresses for a tutorial on how to use MIDI addresses.
Definition at line 145 of file MIDIAddress.hpp.
Constructors | |
constexpr | MIDIAddress () |
Default constructor, creates an invalid address. | |
constexpr | MIDIAddress (int address, MIDIChannelCable channelCN) |
Constructor. | |
constexpr | MIDIAddress (int address, Channel channel=Channel_1, Cable cableNumber=Cable_1) |
Constructor. | |
constexpr | MIDIAddress (int address, Cable cableNumber) |
Constructor. | |
constexpr | MIDIAddress (Channel channel, Cable cableNumber=Cable_1) |
Constructor. | |
constexpr | MIDIAddress (MIDIChannelCable address) |
Constructor. | |
static constexpr MIDIAddress | invalid () |
Return an invalid address. | |
Adding/subtracting offsets | |
MIDIAddress & | operator+= (RelativeMIDIAddress rhs) |
Add a relative offset to this address. | |
MIDIAddress & | operator-= (RelativeMIDIAddress rhs) |
Subtract a relative offset from this address. | |
MIDIAddress | operator+ (RelativeMIDIAddress rhs) const |
Add a relative offset. | |
MIDIAddress | operator- (RelativeMIDIAddress rhs) const |
Subtract a relative offset. | |
Member access | |
constexpr uint8_t | getAddress () const |
Get the address [0, 127]. | |
constexpr Channel | getChannel () const |
Get the channel [Channel_1, Channel_16]. | |
constexpr uint8_t | getRawChannel () const |
Get the channel as an integer [0, 15]. | |
constexpr Cable | getCableNumber () const |
Get the cable number [Cable_1, Cable_16]. | |
constexpr uint8_t | getRawCableNumber () const |
Get the cable number as an integer [0, 15]. | |
constexpr MIDIChannelCable | getChannelCable () const |
Get the channel and cable number. | |
Checks | |
constexpr bool | operator== (MIDIAddress rhs) const |
Check for equality: two addresses are equal if and only if they are both valid addresses and the MIDI address, MIDI channel and MIDI USB cable number are equal. | |
constexpr bool | operator!= (MIDIAddress rhs) const |
Check for inequality: two addresses are not equal if and only if they are both valid addresses and have a MIDI address, MIDI channel or MIDI USB cable number that differs. | |
constexpr bool | isValid () const |
Check if the MIDI address is valid. | |
constexpr | operator bool () const |
Check if the MIDI address is valid. | |
Base functions for address pattern matching. | |
static bool | matchSingle (MIDIAddress toMatch, MIDIAddress base) |
Check if two addresses match (are equal). | |
static bool | matchAddressInRange (MIDIAddress toMatch, MIDIAddress base, uint8_t length) |
Check if an address falls within a range of MIDI addresses, starting with address base , with a given length. | |
Private Attributes | |
RawMIDIAddress | addresses |
|
inlineconstexpr |
Default constructor, creates an invalid address.
Definition at line 151 of file MIDIAddress.hpp.
|
inlineconstexpr |
Constructor.
address | The 7-bit MIDI address. Depending on the message type, this can be the MIDI note number, the number of the MIDI Control Change Controller, etc. Must be a number in the range [0, 127]. |
channelCN | The MIDI Channel and the MIDI USB cable number. |
Definition at line 170 of file MIDIAddress.hpp.
|
inlineconstexpr |
Constructor.
address | The 7-bit MIDI address. Depending on the message type, this can be the MIDI note number, the number of the MIDI Control Change Controller, etc. Must be a number in the range [0, 127]. |
channel | The MIDI Channel. Use the constants Channel_1 through Channel_16. |
cableNumber | The MIDI USB cable number. Use the constants Cable_1 through Cable_16. |
Definition at line 193 of file MIDIAddress.hpp.
|
inlineconstexpr |
Constructor.
address | The 7-bit MIDI address. Depending on the message type, this can be the MIDI note number, the number of the MIDI Control Change Controller, etc. Must be a number in the range [0, 127]. |
cableNumber | The MIDI USB cable number. Use the constants Cable_1 through Cable_16. |
Definition at line 214 of file MIDIAddress.hpp.
|
inlineconstexpr |
Constructor.
channel | The MIDI Channel. Use the constants Channel_1 through Channel_16. |
cableNumber | The MIDI USB cable number. Use the constants Cable_1 through Cable_16. |
Definition at line 232 of file MIDIAddress.hpp.
|
inlineconstexpr |
Constructor.
address | The MIDI Channel and the MIDI USB cable number. |
Definition at line 246 of file MIDIAddress.hpp.
|
inlinestaticconstexpr |
Return an invalid address.
Definition at line 250 of file MIDIAddress.hpp.
MIDIAddress & operator+= | ( | RelativeMIDIAddress | rhs | ) |
Add a relative offset to this address.
Definition at line 13 of file MIDIAddress.cpp.
MIDIAddress & operator-= | ( | RelativeMIDIAddress | rhs | ) |
Subtract a relative offset from this address.
Definition at line 21 of file MIDIAddress.cpp.
MIDIAddress operator+ | ( | RelativeMIDIAddress | rhs | ) | const |
Add a relative offset.
Definition at line 29 of file MIDIAddress.cpp.
MIDIAddress operator- | ( | RelativeMIDIAddress | rhs | ) | const |
Subtract a relative offset.
Definition at line 35 of file MIDIAddress.cpp.
|
inlineconstexpr |
Get the address [0, 127].
Definition at line 277 of file MIDIAddress.hpp.
|
inlineconstexpr |
Get the channel [Channel_1, Channel_16].
Definition at line 280 of file MIDIAddress.hpp.
|
inlineconstexpr |
Get the channel as an integer [0, 15].
Definition at line 282 of file MIDIAddress.hpp.
|
inlineconstexpr |
Get the cable number [Cable_1, Cable_16].
Definition at line 285 of file MIDIAddress.hpp.
|
inlineconstexpr |
Get the cable number as an integer [0, 15].
Definition at line 289 of file MIDIAddress.hpp.
|
inlineconstexpr |
Get the channel and cable number.
Definition at line 293 of file MIDIAddress.hpp.
|
inlineconstexpr |
Check for equality: two addresses are equal if and only if they are both valid addresses and the MIDI address, MIDI channel and MIDI USB cable number are equal.
Definition at line 305 of file MIDIAddress.hpp.
|
inlineconstexpr |
Check for inequality: two addresses are not equal if and only if they are both valid addresses and have a MIDI address, MIDI channel or MIDI USB cable number that differs.
Definition at line 316 of file MIDIAddress.hpp.
|
inlineconstexpr |
Check if the MIDI address is valid.
Definition at line 324 of file MIDIAddress.hpp.
|
inlineexplicitconstexpr |
|
inlinestatic |
Check if two addresses match (are equal).
Definition at line 337 of file MIDIAddress.hpp.
|
static |
Check if an address falls within a range of MIDI addresses, starting with address base
, with a given length.
true | toMatch and base are both valid addresses, the MIDI address is within the given range, and the MIDI Channel and MIDI USB Cable Number of toMatch and base are the same. |
false | Otherwise. |
Definition at line 41 of file MIDIAddress.cpp.
|
private |
Definition at line 355 of file MIDIAddress.hpp.