mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-14 13:18:36 -05:00
Add temp variable support to MIDI condition
This commit is contained in:
@@ -1442,6 +1442,12 @@ AdvSceneSwitcher.tempVar.date.minute="Minute"
|
||||
AdvSceneSwitcher.tempVar.date.second="Second"
|
||||
AdvSceneSwitcher.tempVar.date.dayOfWeek="Day of week"
|
||||
|
||||
AdvSceneSwitcher.tempVar.midi.type="Message type"
|
||||
AdvSceneSwitcher.tempVar.midi.channel="Channel"
|
||||
AdvSceneSwitcher.tempVar.midi.note="Note"
|
||||
AdvSceneSwitcher.tempVar.midi.value1="Value 1"
|
||||
AdvSceneSwitcher.tempVar.midi.value2="Value 2"
|
||||
|
||||
AdvSceneSwitcher.selectScene="--select scene--"
|
||||
AdvSceneSwitcher.selectPreviousScene="Previous Scene"
|
||||
AdvSceneSwitcher.selectCurrentScene="Current Scene"
|
||||
|
||||
@@ -19,8 +19,7 @@ bool MacroConditionMidi::CheckCondition()
|
||||
|
||||
for (const auto &m : *messages) {
|
||||
if (m.Matches(_message)) {
|
||||
SetVariableValue(std::to_string(m.Note()) + " " +
|
||||
std::to_string(m.Value()));
|
||||
SetVariableValues(m);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -49,6 +48,36 @@ std::string MacroConditionMidi::GetShortDesc() const
|
||||
return _device.Name();
|
||||
}
|
||||
|
||||
void MacroConditionMidi::SetupTempVars()
|
||||
{
|
||||
MacroCondition::SetupTempVars();
|
||||
AddTempvar("type",
|
||||
obs_module_text("AdvSceneSwitcher.tempVar.midi.type"));
|
||||
AddTempvar("channel",
|
||||
obs_module_text("AdvSceneSwitcher.tempVar.midi.channel"));
|
||||
AddTempvar("note",
|
||||
obs_module_text("AdvSceneSwitcher.tempVar.midi.note"));
|
||||
AddTempvar("value1",
|
||||
obs_module_text("AdvSceneSwitcher.tempVar.midi.value1"));
|
||||
AddTempvar("value2",
|
||||
obs_module_text("AdvSceneSwitcher.tempVar.midi.value2"));
|
||||
}
|
||||
|
||||
void MacroConditionMidi::SetVariableValues(const MidiMessage &m)
|
||||
{
|
||||
SetVariableValue(std::to_string(m.Note()) + " " +
|
||||
std::to_string(m.Value()));
|
||||
SetTempVarValue("type", m.MidiTypeToString(m.Type()));
|
||||
SetTempVarValue("channel", std::to_string(m.Channel()));
|
||||
try {
|
||||
SetTempVarValue("note",
|
||||
GetAllNotes().at(m.Note()).toStdString());
|
||||
} catch (...) {
|
||||
}
|
||||
SetTempVarValue("value1", std::to_string(m.Note()));
|
||||
SetTempVarValue("value2", std::to_string(m.Value()));
|
||||
}
|
||||
|
||||
MacroConditionMidiEdit::MacroConditionMidiEdit(
|
||||
QWidget *parent, std::shared_ptr<MacroConditionMidi> entryData)
|
||||
: QWidget(parent),
|
||||
|
||||
@@ -24,6 +24,9 @@ public:
|
||||
MidiMessage _message;
|
||||
|
||||
private:
|
||||
void SetupTempVars();
|
||||
void SetVariableValues(const MidiMessage &);
|
||||
|
||||
static bool _registered;
|
||||
static const std::string id;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user