diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2018-09-18 18:51:59 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2018-09-18 19:06:04 -0400 |
commit | e6915e01de2e2167c3384c6c8f2408f763971616 (patch) | |
tree | c67200eda4cf4c595503a850fe6ae72d89032a6f /libs/ardour/ardour/midi_port.h | |
parent | 7390b88c2bb29b1b34624f441adec1e71c74bad8 (diff) |
new transport slave/master implementation, libs/ edition
Diffstat (limited to 'libs/ardour/ardour/midi_port.h')
-rw-r--r-- | libs/ardour/ardour/midi_port.h | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/libs/ardour/ardour/midi_port.h b/libs/ardour/ardour/midi_port.h index e23914c4ce..4b453b80bc 100644 --- a/libs/ardour/ardour/midi_port.h +++ b/libs/ardour/ardour/midi_port.h @@ -24,6 +24,7 @@ #include "midi++/parser.h" #include "ardour/port.h" +#include "ardour/midi_buffer.h" namespace ARDOUR { @@ -51,19 +52,20 @@ class LIBARDOUR_API MidiPort : public Port { bool input_active() const { return _input_active; } void set_input_active (bool yn); - Buffer& get_buffer (pframes_t nframes); + Buffer& get_buffer (pframes_t nframes) { + return get_midi_buffer (nframes); + } MidiBuffer& get_midi_buffer (pframes_t nframes); - void set_always_parse (bool yn); - void set_trace_on (bool yn); + void set_trace (MIDI::Parser* trace_parser); typedef boost::function<bool(MidiBuffer&,MidiBuffer&)> MidiFilter; void set_inbound_filter (MidiFilter); int add_shadow_port (std::string const &, MidiFilter); boost::shared_ptr<MidiPort> shadow_port() const { return _shadow_port; } - MIDI::Parser& self_parser() { return _self_parser; } + void read_and_parse_entire_midi_buffer_with_no_speed_adjustment (pframes_t nframes, MIDI::Parser& parser, samplepos_t now); protected: friend class PortManager; @@ -72,29 +74,17 @@ class LIBARDOUR_API MidiPort : public Port { private: MidiBuffer* _buffer; - bool _has_been_mixed_down; bool _resolve_required; bool _input_active; - bool _always_parse; - bool _trace_on; MidiFilter inbound_midi_filter; boost::shared_ptr<MidiPort> _shadow_port; MidiFilter shadow_midi_filter; - - /* 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; - + 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); }; } // namespace ARDOUR |