MIDI2LR 6.3.0.1
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
ControlsModel Class Reference

#include <ControlsModel.h>

Public Member Functions

double ControllerToPlugin (rsj::MidiMessage mm, bool wrap)
int GetCcMax (int channel, int controlnumber) const
rsj::CCmethod GetCcMethod (int channel, int controlnumber) const
rsj::CCmethod GetCcMethod (rsj::MidiMessageId msg_id) const
int GetCcMin (int channel, int controlnumber) const
int GetPwMax (int channel) const
int GetPwMin (int channel) const
int MeasureChange (rsj::MessageType controltype, int channel, int controlnumber, int value)
int MeasureChange (rsj::MidiMessage mm)
int PluginToController (rsj::MidiMessageId msg_id, double value)
void SetCc (int channel, int controlnumber, int min, int max, rsj::CCmethod controltype)
void SetCcAll (int channel, int controlnumber, int min, int max, rsj::CCmethod controltype)
void SetCcMax (int channel, int controlnumber, int value)
void SetCcMethod (int channel, int controlnumber, rsj::CCmethod value)
void SetCcMin (int channel, int controlnumber, int value)
void SetPwMax (int channel, int value)
void SetPwMin (int channel, int value)
int SetToCenter (rsj::MidiMessageId mm)

Private Member Functions

template<class Archive>
void serialize (Archive &archive, const uint32_t version)

Private Attributes

std::array< ChannelModel, 16 > all_controls_

Friends

class cereal::access

Member Function Documentation

◆ ControllerToPlugin()

double ControlsModel::ControllerToPlugin ( rsj::MidiMessage mm,
bool wrap )
inline
229 {
230 return all_controls_.at(mm.channel)
231 .ControllerToPlugin(mm.message_type_byte, mm.control_number, mm.value, wrap);
232 }
std::array< ChannelModel, 16 > all_controls_
Definition ControlsModel.h:328
int control_number
Definition MidiUtilities.h:123
int channel
Definition MidiUtilities.h:122
MessageType message_type_byte
Definition MidiUtilities.h:121
int value
Definition MidiUtilities.h:124

Referenced by ProfileManager::MidiCmdCallback(), and LrIpcOut::SendNonRepeatedCommand().

◆ GetCcMax()

int ControlsModel::GetCcMax ( int channel,
int controlnumber ) const
inlinenodiscard
260 {
261 return all_controls_.at(channel).GetCcMax(controlnumber);
262 }

◆ GetCcMethod() [1/2]

rsj::CCmethod ControlsModel::GetCcMethod ( int channel,
int controlnumber ) const
inlinenodiscard
248 {
249 return all_controls_.at(channel).GetCcMethod(controlnumber);
250 }

Referenced by LrIpcOut::ShouldSetRecenter().

◆ GetCcMethod() [2/2]

rsj::CCmethod ControlsModel::GetCcMethod ( rsj::MidiMessageId msg_id) const
inlinenodiscard
253 {
254 /* MidiMessageId channel is 1-based */
255 return all_controls_.at(gsl::narrow_cast<size_t>(msg_id.channel) - 1)
256 .GetCcMethod(msg_id.control_number);
257 }
int channel
Definition MidiUtilities.h:143
int control_number
Definition MidiUtilities.h:144

◆ GetCcMin()

int ControlsModel::GetCcMin ( int channel,
int controlnumber ) const
inline
265 {
266 return all_controls_.at(channel).GetCcMin(controlnumber);
267 }

◆ GetPwMax()

int ControlsModel::GetPwMax ( int channel) const
inlinenodiscard
269{ return all_controls_.at(channel).GetPwMax(); }

◆ GetPwMin()

int ControlsModel::GetPwMin ( int channel) const
inlinenodiscard
271{ return all_controls_.at(channel).GetPwMin(); }

◆ MeasureChange() [1/2]

int ControlsModel::MeasureChange ( rsj::MessageType controltype,
int channel,
int controlnumber,
int value )
inline
281 {
282 return all_controls_.at(channel).MeasureChange(controltype, controlnumber, value);
283 }

◆ MeasureChange() [2/2]

int ControlsModel::MeasureChange ( rsj::MidiMessage mm)
inline
235 {
236 return all_controls_.at(mm.channel)
237 .MeasureChange(mm.message_type_byte, mm.control_number, mm.value);
238 }

Referenced by LrIpcOut::SendRepeatedCommand().

◆ PluginToController()

int ControlsModel::PluginToController ( rsj::MidiMessageId msg_id,
double value )
inline
274 {
275 /* msg_id is one-based */
276 return all_controls_.at(gsl::narrow_cast<size_t>(msg_id.channel) - 1)
277 .PluginToController(msg_id.msg_id_type, msg_id.control_number, value);
278 }
MessageType msg_id_type
Definition MidiUtilities.h:145

◆ serialize()

template<class Archive>
void ControlsModel::serialize ( Archive & archive,
const uint32_t version )
inlineprivate
318 {
319 try {
320 if (version == 1) { archive(all_controls_); }
321 }
322 catch (const std::exception& e) {
323 rsj::ExceptionResponse(e, std::source_location::current());
324 throw;
325 }
326 }
void ExceptionResponse(gsl::czstring id, gsl::czstring fu, const std::exception &e) noexcept

◆ SetCc()

void ControlsModel::SetCc ( int channel,
int controlnumber,
int min,
int max,
rsj::CCmethod controltype )
inline
286 {
287 all_controls_.at(channel).SetCc(controlnumber, min, max, controltype);
288 }

◆ SetCcAll()

void ControlsModel::SetCcAll ( int channel,
int controlnumber,
int min,
int max,
rsj::CCmethod controltype )
inline
291 {
292 all_controls_.at(channel).SetCcAll(controlnumber, min, max, controltype);
293 }

◆ SetCcMax()

void ControlsModel::SetCcMax ( int channel,
int controlnumber,
int value )
inline
296 {
297 all_controls_.at(channel).SetCcMax(controlnumber, value);
298 }

◆ SetCcMethod()

void ControlsModel::SetCcMethod ( int channel,
int controlnumber,
rsj::CCmethod value )
inline
301 {
302 all_controls_.at(channel).SetCcMethod(controlnumber, value);
303 }

◆ SetCcMin()

void ControlsModel::SetCcMin ( int channel,
int controlnumber,
int value )
inline
306 {
307 all_controls_.at(channel).SetCcMin(controlnumber, value);
308 }

◆ SetPwMax()

void ControlsModel::SetPwMax ( int channel,
int value )
inline
310{ all_controls_.at(channel).SetPwMax(value); }

◆ SetPwMin()

void ControlsModel::SetPwMin ( int channel,
int value )
inline
312{ all_controls_.at(channel).SetPwMin(value); }

◆ SetToCenter()

int ControlsModel::SetToCenter ( rsj::MidiMessageId mm)
inline
241 {
242 /* MidiMessageId channel is 1-based */
243 return all_controls_.at(gsl::narrow_cast<size_t>(mm.channel) - 1)
244 .SetToCenter(mm.msg_id_type, mm.control_number);
245 }

◆ cereal::access

friend class cereal::access
friend

Member Data Documentation

◆ all_controls_

std::array<ChannelModel, 16> ControlsModel::all_controls_
private

The documentation for this class was generated from the following file: