Skip to content

Commit

Permalink
Merge pull request #13089 from christophehenry/dont-override-XML-mapping
Browse files Browse the repository at this point in the history
Don't override XML mapping when using `makeInputHandler`
  • Loading branch information
daschuer committed May 1, 2024
2 parents 92b9aad + d070bae commit 6170466
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions src/controllers/midi/midicontroller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -625,14 +625,29 @@ QJSValue MidiController::makeInputHandler(int status, int midino, const QJSValue
auto mStatusError = QStringLiteral(
"Invalid status or midino passed to midi.makeInputHandler. "
"Please pass a strictly positive integer. status=%1,midino=%2")
.arg(status, midino);
.arg(status)
.arg(midino);

getScriptEngine()->throwJSError(mStatusError);
return QJSValue();
}

const auto midiKey = MidiKey(status, midino);

auto it = m_pMapping->getInputMappings().constFind(midiKey.key);
if (it != m_pMapping->getInputMappings().constEnd() &&
it.value().options.testFlag(MidiOption::Script) &&
std::holds_alternative<ConfigKey>(it.value().control)) {
qCWarning(m_logBase) << QStringLiteral(
"Ignoring anonymous JS function for status=%1,midino=%2 "
"because a previous XML binding exists")
.arg(status)
.arg(midino);
return QJSValue();
}

MidiInputMapping inputMapping(
MidiKey(status, midino),
midiKey,
MidiOption::Script,
std::make_shared<QJSValue>(scriptCode));

Expand Down

0 comments on commit 6170466

Please sign in to comment.