Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Def
MIDIAddress.cpp
Go to the documentation of this file.
1
#include "
MIDIAddress.hpp
"
2
3
BEGIN_CS_NAMESPACE
4
5
RelativeMIDIAddress
&
RelativeMIDIAddress::operator+=
(
RelativeMIDIAddress
that) {
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
13
MIDIAddress
&
MIDIAddress::operator+=
(
RelativeMIDIAddress
rhs) {
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
21
MIDIAddress
&
MIDIAddress::operator-=
(
RelativeMIDIAddress
rhs) {
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
29
MIDIAddress
MIDIAddress::operator+
(
RelativeMIDIAddress
rhs)
const
{
30
MIDIAddress
copy = *
this
;
31
copy += rhs;
32
return
copy;
33
}
34
35
MIDIAddress
MIDIAddress::operator-
(
RelativeMIDIAddress
rhs)
const
{
36
MIDIAddress
copy = *
this
;
37
copy -= rhs;
38
return
copy;
39
}
40
41
bool
MIDIAddress::matchAddressInRange
(
MIDIAddress
toMatch,
MIDIAddress
base,
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
53
END_CS_NAMESPACE
MIDIAddress.hpp
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:14
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition
Settings/NamespaceSettings.hpp:11
MIDIAddress::operator-
MIDIAddress operator-(RelativeMIDIAddress rhs) const
Subtract a relative offset.
Definition
MIDIAddress.cpp:35
MIDIAddress::addresses
RawMIDIAddress addresses
Definition
MIDIAddress.hpp:355
MIDIAddress::operator-=
MIDIAddress & operator-=(RelativeMIDIAddress rhs)
Subtract a relative offset from this address.
Definition
MIDIAddress.cpp:21
MIDIAddress::operator+
MIDIAddress operator+(RelativeMIDIAddress rhs) const
Add a relative offset.
Definition
MIDIAddress.cpp:29
MIDIAddress::matchAddressInRange
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,...
Definition
MIDIAddress.cpp:41
MIDIAddress::operator+=
MIDIAddress & operator+=(RelativeMIDIAddress rhs)
Add a relative offset to this address.
Definition
MIDIAddress.cpp:13
MIDIAddress::MIDIAddress
constexpr MIDIAddress()
Default constructor, creates an invalid address.
Definition
MIDIAddress.hpp:151
RelativeMIDIAddress
A class for saving an offset to a MIDI address.
Definition
MIDIAddress.hpp:113
RelativeMIDIAddress::addresses
RawMIDIAddress addresses
Definition
MIDIAddress.hpp:133
RelativeMIDIAddress::RelativeMIDIAddress
constexpr RelativeMIDIAddress()
Definition
MIDIAddress.hpp:117
RelativeMIDIAddress::operator+=
RelativeMIDIAddress & operator+=(RelativeMIDIAddress that)
Compound addition.
Definition
MIDIAddress.cpp:5
Generated by
1.17.0