diff options
author | Carl Hetherington <carl@carlh.net> | 2010-12-07 15:00:19 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-12-07 15:00:19 +0000 |
commit | a9275f997b131e96191cdb32542074e655a116cb (patch) | |
tree | 1db249394c5db54b38ae4f4944b4bc9cbcd26a3b /libs/ardour/vst_plugin.cc | |
parent | e621d704ac16f7da143a1c7ab3d6864c803ec8c9 (diff) |
Put plugin-note-off code in the right place.
git-svn-id: svn://localhost/ardour2/branches/3.0@8207 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/vst_plugin.cc')
-rw-r--r-- | libs/ardour/vst_plugin.cc | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc index 8f30ff98e9..edcb665435 100644 --- a/libs/ardour/vst_plugin.cc +++ b/libs/ardour/vst_plugin.cc @@ -63,7 +63,6 @@ using std::max; VSTPlugin::VSTPlugin (AudioEngine& e, Session& session, FSTHandle* h) : Plugin (e, session) - , _have_pending_stop_events (false) { handle = h; @@ -90,7 +89,6 @@ VSTPlugin::VSTPlugin (AudioEngine& e, Session& session, FSTHandle* h) VSTPlugin::VSTPlugin (const VSTPlugin &other) : Plugin (other) - , _have_pending_stop_events (false) { handle = other.handle; @@ -489,6 +487,8 @@ VSTPlugin::connect_and_run (BufferSet& bufs, ChanMapping in_map, ChanMapping out_map, pframes_t nframes, framecnt_t offset) { + Plugin::connect_and_run (bufs, in_map, out_map, nframes, offset); + float *ins[_plugin->numInputs]; float *outs[_plugin->numOutputs]; int32_t i; @@ -516,18 +516,6 @@ VSTPlugin::connect_and_run (BufferSet& bufs, if (bufs.count().n_midi() > 0) { - - /* Track notes that we are sending to the plugin */ - MidiBuffer& b = bufs.get_midi (0); - bool looped; - _tracker.track (b.begin(), b.end(), looped); - - if (_have_pending_stop_events) { - /* Transmit note-offs that are pending from the last transport stop */ - bufs.merge_from (_pending_stop_events, 0); - _have_pending_stop_events = false; - } - VstEvents* v = bufs.get_vst_midi (0); _plugin->dispatcher (_plugin, effProcessEvents, 0, 0, v, 0); } @@ -735,19 +723,6 @@ VSTPlugin::first_user_preset_index () const return _plugin->numPrograms; } -void -VSTPlugin::realtime_handle_transport_stopped () -{ - /* Create note-offs for any active notes and put them in _pending_stop_events, to be picked - up on the next call to connect_and_run (). - */ - - _pending_stop_events.ensure_buffers (DataType::MIDI, 1, 4096); - _pending_stop_events.get_midi(0).clear (); - _tracker.resolve_notes (_pending_stop_events.get_midi (0), 0); - _have_pending_stop_events = true; -} - VSTPluginInfo::VSTPluginInfo() { type = ARDOUR::VST; |