MIDI2LR 6.1.0.0
MIDI2LR is an application that interfaces MIDI controllers with Lightroom 6+/CC Classic. It processes MIDI input into develop parameter updates and photo actions, and sends MIDI output when parameters are changed for motorized feedback (on controllers that have motorized faders). A listing of available LightRoom commands is in the Wiki. Assistance on the code and design is welcome.
Loading...
Searching...
No Matches
rsj::MidiMessage Struct Reference

Public Member Functions

constexpr MidiMessage () noexcept=default
 
 MidiMessage (const juce::MidiMessage &mm)
 
constexpr MidiMessage (MessageType mt, int ch, int nu, int va) noexcept
 

Public Attributes

int channel {0}
 
int control_number {0}
 
MessageType message_type_byte {MessageType::kNoteOn}
 
int value {0}
 

Constructor & Destructor Documentation

◆ MidiMessage() [1/3]

constexpr rsj::MidiMessage::MidiMessage ( )
constexprdefaultnoexcept

◆ MidiMessage() [2/3]

constexpr rsj::MidiMessage::MidiMessage ( MessageType  mt,
int  ch,
int  nu,
int  va 
)
inlineconstexprnoexcept
132 {
133 }
int control_number
Definition MidiUtilities.h:126
int channel
Definition MidiUtilities.h:125
MessageType message_type_byte
Definition MidiUtilities.h:124
int value
Definition MidiUtilities.h:127

◆ MidiMessage() [3/3]

rsj::MidiMessage::MidiMessage ( const juce::MidiMessage &  mm)
explicit
30{
31 /* anything not set below is set to zero by default constructor */
32#pragma warning(push)
33#pragma warning(disable : 26481) /* doing raw pointer arithmetic, parsing low-level structure */
34 // ReSharper disable CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic
35 const auto raw {mm.getRawData()};
36 Ensures(raw);
37 if (rsj::ValidMessageType(raw[0])) {
39 channel = raw[0] & 0xF;
40 switch (message_type_byte) {
42 value = raw[2] << 7 | raw[1];
43 break;
48 value = raw[2];
50 break;
53 break;
55 value = raw[1];
56 break;
58 break; /* no action */
59 }
60 }
61 else {
63 }
64#pragma warning(pop)
65 // ReSharper restore CppClangTidyCppcoreguidelinesProBoundsPointerArithmetic
66}
constexpr MessageType ToMessageType(std::underlying_type_t< MessageType > value)
Definition MidiUtilities.h:61
constexpr bool ValidMessageType(std::underlying_type_t< MessageType > value) noexcept
Definition MidiUtilities.h:53

Member Data Documentation

◆ channel

int rsj::MidiMessage::channel {0}
125{0}; /* 0-based */

◆ control_number

int rsj::MidiMessage::control_number {0}
126{0};

◆ message_type_byte

MessageType rsj::MidiMessage::message_type_byte {MessageType::kNoteOn}

◆ value

int rsj::MidiMessage::value {0}
127{0};

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