summaryrefslogtreecommitdiff
path: root/libs/ardour/luaproc.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-03-09 22:07:41 +0100
committerRobin Gareus <robin@gareus.org>2020-03-09 22:12:23 +0100
commit1d17993a292c914a630f460ce34c098bfa535226 (patch)
treeb28158678664078100fd418d1e61d7e83cf12842 /libs/ardour/luaproc.cc
parent810b2fb78d89b24de7f35ca8429e384ab5125a22 (diff)
Revert failed experiment, scripted multiple MIDI outputs via dsp_run()
This reverts commit 8702ff2189665b473918ed60f34b6be4010a06f7, and b10d9cf09bf6150f0ba0eae5dc34fd8db8b2fa91. There was a misconception on the iterator (port vs message in sequence), besides Ardour's mixer-strip is preferably used with a single MIDI port. Most plugin-standards also only support one port. If need be LuaDSP run_map() can be used to handle multiple MIDI I/O ports already.
Diffstat (limited to 'libs/ardour/luaproc.cc')
-rw-r--r--libs/ardour/luaproc.cc15
1 files changed, 6 insertions, 9 deletions
diff --git a/libs/ardour/luaproc.cc b/libs/ardour/luaproc.cc
index ab20bdf251..bbde673299 100644
--- a/libs/ardour/luaproc.cc
+++ b/libs/ardour/luaproc.cc
@@ -725,15 +725,12 @@ LuaProc::connect_and_run (BufferSet& bufs,
// copy back midi events
if (_has_midi_output && lua_midi_sink_tbl.isTable ()) {
- uint32_t count = 0;
- uint32_t idx;
- for (luabridge::Iterator i (lua_midi_sink_tbl); !i.isNil (); ++i) {
- bool iter_is_valid;
- idx = out.get(DataType::MIDI, count, &iter_is_valid);
- count++;
- if (iter_is_valid && bufs.count().n_midi() > idx) {
- MidiBuffer& mbuf = bufs.get_midi(idx);
- mbuf.silence(0, 0);
+ bool valid;
+ const uint32_t idx = out.get(DataType::MIDI, 0, &valid);
+ if (valid && bufs.count().n_midi() > idx) {
+ MidiBuffer& mbuf = bufs.get_midi(idx);
+ mbuf.silence(0, 0);
+ for (luabridge::Iterator i (lua_midi_sink_tbl); !i.isNil (); ++i) {
if (!i.key ().isNumber ()) { continue; }
if (!i.value ()["time"].isNumber ()) { continue; }
if (!i.value ()["data"].isTable ()) { continue; }