Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
MIDI_Parsers
AnyMIDI_Message.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
MIDIReadEvent.hpp
"
4
#include "
MIDI_MessageTypes.hpp
"
5
#include <
Settings/NamespaceSettings.hpp
>
6
7
BEGIN_CS_NAMESPACE
8
10
struct
AnyMIDIMessage
{
11
MIDIReadEvent
eventType
=
MIDIReadEvent::NO_MESSAGE
;
12
union
Message
{
13
ChannelMessage
channelmessage
;
14
SysCommonMessage
syscommonmessage
;
15
RealTimeMessage
realtimemessage
;
16
SysExMessage
sysexmessage
;
17
18
Message
() :
realtimemessage
(0x00) {}
19
Message
(
ChannelMessage
msg) :
channelmessage
(msg) {}
20
Message
(
SysCommonMessage
msg) :
syscommonmessage
(msg) {}
21
Message
(
RealTimeMessage
msg) :
realtimemessage
(msg) {}
22
Message
(
SysExMessage
msg) :
sysexmessage
(msg) {}
23
}
message
;
24
uint16_t
timestamp
= 0xFFFF;
25
26
AnyMIDIMessage
() =
default
;
27
AnyMIDIMessage
(
ChannelMessage
message
, uint16_t
timestamp
)
28
:
eventType
(
MIDIReadEvent
::
CHANNEL_MESSAGE
),
message
(
message
),
29
timestamp
(
timestamp
) {}
30
AnyMIDIMessage
(
SysCommonMessage
message
, uint16_t
timestamp
)
31
:
eventType
(
MIDIReadEvent
::
SYSCOMMON_MESSAGE
),
message
(
message
),
32
timestamp
(
timestamp
) {}
33
AnyMIDIMessage
(
RealTimeMessage
message
, uint16_t
timestamp
)
34
:
eventType
(
MIDIReadEvent
::
REALTIME_MESSAGE
),
message
(
message
),
35
timestamp
(
timestamp
) {}
36
AnyMIDIMessage
(
SysExMessage
message
, uint16_t
timestamp
)
37
:
eventType
(
message
.isLastChunk() ?
MIDIReadEvent
::
SYSEX_MESSAGE
38
:
MIDIReadEvent
::
SYSEX_CHUNK
),
39
message
(
message
),
timestamp
(
timestamp
) {}
40
};
41
42
END_CS_NAMESPACE
MIDIReadEvent.hpp
MIDIReadEvent
MIDIReadEvent
Values returned by the MIDI reading functions.
Definition
MIDIReadEvent.hpp:11
MIDIReadEvent::CHANNEL_MESSAGE
@ CHANNEL_MESSAGE
A MIDI Channel message was received.
Definition
MIDIReadEvent.hpp:13
MIDIReadEvent::SYSEX_CHUNK
@ SYSEX_CHUNK
An incomplete System Exclusive message.
Definition
MIDIReadEvent.hpp:16
MIDIReadEvent::SYSCOMMON_MESSAGE
@ SYSCOMMON_MESSAGE
A MIDI System Common message was received.
Definition
MIDIReadEvent.hpp:17
MIDIReadEvent::NO_MESSAGE
@ NO_MESSAGE
No new messages were received.
Definition
MIDIReadEvent.hpp:12
MIDIReadEvent::SYSEX_MESSAGE
@ SYSEX_MESSAGE
A MIDI System Exclusive message was received.
Definition
MIDIReadEvent.hpp:14
MIDIReadEvent::REALTIME_MESSAGE
@ REALTIME_MESSAGE
A MIDI Real-Time message was received.
Definition
MIDIReadEvent.hpp:15
MIDI_MessageTypes.hpp
NamespaceSettings.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
AnyMIDIMessage::eventType
MIDIReadEvent eventType
Definition
AnyMIDI_Message.hpp:11
AnyMIDIMessage::message
union AnyMIDIMessage::Message message
AnyMIDIMessage::AnyMIDIMessage
AnyMIDIMessage(SysCommonMessage message, uint16_t timestamp)
Definition
AnyMIDI_Message.hpp:30
AnyMIDIMessage::AnyMIDIMessage
AnyMIDIMessage()=default
AnyMIDIMessage::AnyMIDIMessage
AnyMIDIMessage(ChannelMessage message, uint16_t timestamp)
Definition
AnyMIDI_Message.hpp:27
AnyMIDIMessage::AnyMIDIMessage
AnyMIDIMessage(SysExMessage message, uint16_t timestamp)
Definition
AnyMIDI_Message.hpp:36
AnyMIDIMessage::timestamp
uint16_t timestamp
Definition
AnyMIDI_Message.hpp:24
AnyMIDIMessage::AnyMIDIMessage
AnyMIDIMessage(RealTimeMessage message, uint16_t timestamp)
Definition
AnyMIDI_Message.hpp:33
ChannelMessage
Definition
MIDI_MessageTypes.hpp:205
RealTimeMessage
Definition
MIDI_MessageTypes.hpp:354
SysCommonMessage
Definition
MIDI_MessageTypes.hpp:263
SysExMessage
Definition
MIDI_MessageTypes.hpp:305
AnyMIDIMessage::Message::Message
Message(ChannelMessage msg)
Definition
AnyMIDI_Message.hpp:19
AnyMIDIMessage::Message::Message
Message(SysExMessage msg)
Definition
AnyMIDI_Message.hpp:22
AnyMIDIMessage::Message::channelmessage
ChannelMessage channelmessage
Definition
AnyMIDI_Message.hpp:13
AnyMIDIMessage::Message::realtimemessage
RealTimeMessage realtimemessage
Definition
AnyMIDI_Message.hpp:15
AnyMIDIMessage::Message::Message
Message(RealTimeMessage msg)
Definition
AnyMIDI_Message.hpp:21
AnyMIDIMessage::Message::syscommonmessage
SysCommonMessage syscommonmessage
Definition
AnyMIDI_Message.hpp:14
AnyMIDIMessage::Message::Message
Message(SysCommonMessage msg)
Definition
AnyMIDI_Message.hpp:20
AnyMIDIMessage::Message::sysexmessage
SysExMessage sysexmessage
Definition
AnyMIDI_Message.hpp:16
AnyMIDIMessage::Message::Message
Message()
Definition
AnyMIDI_Message.hpp:18
Generated by
1.17.0