- bool _always_parse;
-
- /* Naming this is tricky. AsyncMIDIPort inherits (for now, aug 2013) from
- * both MIDI::Port, which has _parser, and this (ARDOUR::MidiPort). We
- * need parsing support in this object, independently of what the
- * MIDI::Port/AsyncMIDIPort stuff does. Rather than risk errors coming
- * from not explicitly naming which _parser we want, we will call this
- * _self_parser for now.
- *
- * Ultimately, MIDI::Port should probably go away or be fully integrated
- * into this object, somehow.
- */
-
- MIDI::Parser _self_parser;
-
- void resolve_notes (void* buffer, MidiBuffer::TimeType when);
+ MidiFilter inbound_midi_filter;
+ boost::shared_ptr<MidiPort> _shadow_port;
+ MidiFilter shadow_midi_filter;
+ MIDI::Parser* _trace_parser;
+ bool _data_fetched_for_cycle;
+
+ void resolve_notes (void* buffer, samplepos_t when);
+ void pull_input (pframes_t nframes, bool adjust_speed);
+ void parse_input (pframes_t nframes, MIDI::Parser& parser);