diff options
author | David Robillard <d@drobilla.net> | 2012-11-18 04:35:31 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-11-18 04:35:31 +0000 |
commit | b47619c458a9b64157a53083b813fdaff52b3e45 (patch) | |
tree | b920ac53f24fec5f8bbd7c2553a066c4f9c731a0 /libs/ardour/ardour/lv2_plugin.h | |
parent | 95bd893d5e1f5fa574799e13905d323bc8b5d531 (diff) |
Deliver MIDI events to atom ports that support it, merged with transport events.
Eliminate delivery of non-MIDI events to Ardour MIDI buffers.
Fix the general mess of LV2 port flags and types.
Unify old MIDI API and new atom API MIDI stuff.
Making this work required changing the way we do LV2 MIDI slightly: instead of
BufferSet::get_lv2_midi doing the translation automatically, it returns an
empty buffer and the caller is responsible for actually filling it. This
allows the LV2 code to iterate over the MIDI and transport changes in one go to
merge them into the buffer at the correct times.
Synth plugins using the new atom API now work and can get accurate transport
information along with the MIDI that drives them.
git-svn-id: svn://localhost/ardour2/branches/3.0@13522 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/lv2_plugin.h')
-rw-r--r-- | libs/ardour/ardour/lv2_plugin.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index 51fa5a2987..66c44884ea 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -179,7 +179,6 @@ class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee float* _bpm_control_port; ///< Special input set by ardour float* _freewheel_control_port; ///< Special input set by ardour float* _latency_control_port; ///< Special output set by ardour - uint32_t _position_seq_port_idx; ///< Index of Sequence port for position framepos_t _next_cycle_start; ///< Expected start frame of next run cycle double _next_cycle_speed; ///< Expected start frame of next run cycle PBD::ID _insert_id; @@ -190,13 +189,14 @@ class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee uint32_t* type); typedef enum { - PORT_INPUT = 1, - PORT_OUTPUT = 1 << 1, - PORT_AUDIO = 1 << 2, - PORT_CONTROL = 1 << 3, - PORT_EVENT = 1 << 4, - PORT_MESSAGE = 1 << 5, - PORT_ATOM = 1 << 6 + PORT_INPUT = 1, ///< Input port + PORT_OUTPUT = 1 << 1, ///< Output port + PORT_AUDIO = 1 << 2, ///< Audio (buffer of float) + PORT_CONTROL = 1 << 3, ///< Control (single float) + PORT_EVENT = 1 << 4, ///< Old event API event port + PORT_SEQUENCE = 1 << 5, ///< New atom API event port + PORT_MIDI = 1 << 6, ///< Event port understands MIDI + PORT_POSITION = 1 << 7 ///< Event port understands position } PortFlag; typedef unsigned PortFlags; |