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
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
226 {
227 return all_controls_.at(mm.channel)
228 .ControllerToPlugin(mm.message_type_byte, mm.control_number, mm.value, wrap);
229 }
std::array< ChannelModel, 16 > all_controls_
Definition ControlsModel.h:325
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

◆ GetCcMax()

int ControlsModel::GetCcMax ( int  channel,
int  controlnumber 
) const
inline
257 {
258 return all_controls_.at(channel).GetCcMax(controlnumber);
259 }

◆ GetCcMethod() [1/2]

rsj::CCmethod ControlsModel::GetCcMethod ( int  channel,
int  controlnumber 
) const
inline
245 {
246 return all_controls_.at(channel).GetCcMethod(controlnumber);
247 }

◆ GetCcMethod() [2/2]

rsj::CCmethod ControlsModel::GetCcMethod ( rsj::MidiMessageId  msg_id) const
inline
250 {
251 /* MidiMessageId channel is 1-based */
252 return all_controls_.at(gsl::narrow_cast<size_t>(msg_id.channel) - 1)
253 .GetCcMethod(msg_id.control_number);
254 }
int channel
Definition MidiUtilities.h:146
int control_number
Definition MidiUtilities.h:147

◆ GetCcMin()

int ControlsModel::GetCcMin ( int  channel,
int  controlnumber 
) const
inline
262 {
263 return all_controls_.at(channel).GetCcMin(controlnumber);
264 }

◆ GetPwMax()

int ControlsModel::GetPwMax ( int  channel) const
inline
266{ return all_controls_.at(channel).GetPwMax(); }

◆ GetPwMin()

int ControlsModel::GetPwMin ( int  channel) const
inline
268{ return all_controls_.at(channel).GetPwMin(); }

◆ MeasureChange() [1/2]

int ControlsModel::MeasureChange ( rsj::MessageType  controltype,
int  channel,
int  controlnumber,
int  value 
)
inline
278 {
279 return all_controls_.at(channel).MeasureChange(controltype, controlnumber, value);
280 }

◆ MeasureChange() [2/2]

int ControlsModel::MeasureChange ( rsj::MidiMessage  mm)
inline
232 {
233 return all_controls_.at(mm.channel)
234 .MeasureChange(mm.message_type_byte, mm.control_number, mm.value);
235 }

◆ PluginToController()

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

◆ serialize()

template<class Archive >
void ControlsModel::serialize ( Archive &  archive,
const uint32_t  version 
)
inlineprivate
315 {
316 try {
317 if (version == 1) { archive(all_controls_); }
318 }
319 catch (const std::exception& e) {
321 throw;
322 }
323 }
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
283 {
284 all_controls_.at(channel).SetCc(controlnumber, min, max, controltype);
285 }

◆ SetCcAll()

void ControlsModel::SetCcAll ( int  channel,
int  controlnumber,
int  min,
int  max,
rsj::CCmethod  controltype 
)
inline
288 {
289 all_controls_.at(channel).SetCcAll(controlnumber, min, max, controltype);
290 }

◆ SetCcMax()

void ControlsModel::SetCcMax ( int  channel,
int  controlnumber,
int  value 
)
inline
293 {
294 all_controls_.at(channel).SetCcMax(controlnumber, value);
295 }

◆ SetCcMethod()

void ControlsModel::SetCcMethod ( int  channel,
int  controlnumber,
rsj::CCmethod  value 
)
inline
298 {
299 all_controls_.at(channel).SetCcMethod(controlnumber, value);
300 }

◆ SetCcMin()

void ControlsModel::SetCcMin ( int  channel,
int  controlnumber,
int  value 
)
inline
303 {
304 all_controls_.at(channel).SetCcMin(controlnumber, value);
305 }

◆ SetPwMax()

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

◆ SetPwMin()

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

◆ SetToCenter()

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

Friends And Related Symbol Documentation

◆ 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: