Control Surface main
MIDI Control Surface library for Arduino
Loading...
Searching...
No Matches
MIDIAddress.cpp
Go to the documentation of this file.
1#include "MIDIAddress.hpp"
2
4
6 this->addresses.valid &= that.addresses.valid;
7 this->addresses.address += that.addresses.address;
8 this->addresses.channel += that.addresses.channel;
9 this->addresses.cableNumber += that.addresses.cableNumber;
10 return *this;
11}
12
14 this->addresses.valid &= rhs.addresses.valid;
15 this->addresses.address += rhs.addresses.address;
16 this->addresses.channel += rhs.addresses.channel;
17 this->addresses.cableNumber += rhs.addresses.cableNumber;
18 return *this;
19}
20
22 this->addresses.valid &= rhs.addresses.valid;
23 this->addresses.address -= rhs.addresses.address;
24 this->addresses.channel -= rhs.addresses.channel;
25 this->addresses.cableNumber -= rhs.addresses.cableNumber;
26 return *this;
27}
28
30 MIDIAddress copy = *this;
31 copy += rhs;
32 return copy;
33}
34
36 MIDIAddress copy = *this;
37 copy -= rhs;
38 return copy;
39}
40
42 uint8_t length) {
43 bool valid = base.addresses.valid && toMatch.addresses.valid;
44 bool addressInRange =
45 base.addresses.address <= toMatch.addresses.address &&
46 base.addresses.address + length > toMatch.addresses.address;
47 bool equalChannelAndCN =
48 base.addresses.channel == toMatch.addresses.channel &&
49 base.addresses.cableNumber == toMatch.addresses.cableNumber;
50 return valid && addressInRange && equalChannelAndCN;
51}
52
#define END_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
A type-safe utility class for saving a MIDI address consisting of a 7-bit address,...
MIDIAddress operator-(RelativeMIDIAddress rhs) const
Subtract a relative offset.
RawMIDIAddress addresses
MIDIAddress & operator-=(RelativeMIDIAddress rhs)
Subtract a relative offset from this address.
MIDIAddress operator+(RelativeMIDIAddress rhs) const
Add a relative offset.
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,...
MIDIAddress & operator+=(RelativeMIDIAddress rhs)
Add a relative offset to this address.
A class for saving an offset to a MIDI address.
RawMIDIAddress addresses
RelativeMIDIAddress & operator+=(RelativeMIDIAddress that)
Compound addition.