diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2019-11-06 16:00:00 -0700 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2019-11-06 16:00:31 -0700 |
commit | febaa1ff2d1f5150d30902f7ccc8b5dfcfb3c913 (patch) | |
tree | 8fa79254ff807577eb6977987f834edfed8905fb /libs/ardour/ardour | |
parent | 9694f8996643e8845393aa60548f97ccc416d4e1 (diff) |
fix unconditional note resolution during DiskReader::realtime_locate()
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() -
::get_midi_playback() has already taken care of this. But when not looping, we need this. So,
add an argument to tell all interested parties whether the locate is for a loop end or not
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/delivery.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/disk_reader.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_port.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_track.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin_insert.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/port.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/processor.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 2 |
10 files changed, 10 insertions, 10 deletions
diff --git a/libs/ardour/ardour/delivery.h b/libs/ardour/ardour/delivery.h index 18bc2987da..887da3b1da 100644 --- a/libs/ardour/ardour/delivery.h +++ b/libs/ardour/ardour/delivery.h @@ -84,7 +84,7 @@ public: void flush_buffers (samplecnt_t nframes); void no_outs_cuz_we_no_monitor(bool); void non_realtime_transport_stop (samplepos_t now, bool flush); - void realtime_locate (); + void realtime_locate (bool); BufferSet& output_buffers() { return *_output_buffers; } diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h index 20f1e93601..beb7fb625e 100644 --- a/libs/ardour/ardour/disk_reader.h +++ b/libs/ardour/ardour/disk_reader.h @@ -50,7 +50,7 @@ public: void run (BufferSet& /*bufs*/, samplepos_t /*start_sample*/, samplepos_t /*end_sample*/, double speed, pframes_t /*nframes*/, bool /*result_required*/); void realtime_handle_transport_stopped (); - void realtime_locate (); + void realtime_locate (bool); bool overwrite_existing_buffers (); void set_pending_overwrite (); diff --git a/libs/ardour/ardour/midi_port.h b/libs/ardour/ardour/midi_port.h index 44186ed19a..bf9ce72c25 100644 --- a/libs/ardour/ardour/midi_port.h +++ b/libs/ardour/ardour/midi_port.h @@ -46,7 +46,7 @@ public: void flush_buffers (pframes_t nframes); void transport_stopped (); - void realtime_locate (); + void realtime_locate (bool); void reset (); void require_resolve (); diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h index be78c060c3..5232083311 100644 --- a/libs/ardour/ardour/midi_track.h +++ b/libs/ardour/ardour/midi_track.h @@ -43,7 +43,7 @@ public: int init (); - void realtime_locate (); + void realtime_locate (bool); void non_realtime_locate (samplepos_t); bool can_be_record_enabled (); diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index 287f18ad68..cdcc313578 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -174,7 +174,7 @@ public: bool write_immediate_event (size_t size, const uint8_t* buf); void realtime_handle_transport_stopped (); - void realtime_locate (); + void realtime_locate (bool); void monitoring_changed (); struct UILayoutHint { diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index c06bdb66ce..68c1aaa604 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -190,7 +190,7 @@ public: ); void realtime_handle_transport_stopped (); - void realtime_locate (); + void realtime_locate (bool); void monitoring_changed (); bool load_preset (Plugin::PresetRecord); diff --git a/libs/ardour/ardour/port.h b/libs/ardour/ardour/port.h index d2fb0ed03f..aa19ca85ed 100644 --- a/libs/ardour/ardour/port.h +++ b/libs/ardour/ardour/port.h @@ -122,7 +122,7 @@ public: virtual Buffer& get_buffer (pframes_t nframes) = 0; virtual void flush_buffers (pframes_t /*nframes*/) {} virtual void transport_stopped () {} - virtual void realtime_locate () {} + virtual void realtime_locate (bool for_loop_end) {} virtual void set_buffer_size (pframes_t) {} bool physically_connected () const; diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h index 33fc813eec..29f72cb952 100644 --- a/libs/ardour/ardour/processor.h +++ b/libs/ardour/ardour/processor.h @@ -115,7 +115,7 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public virtual ChanCount output_streams() const { return _configured_output; } virtual void realtime_handle_transport_stopped () {} - virtual void realtime_locate () {} + virtual void realtime_locate (bool) {} virtual void set_loop (Location *loc) { _loop_location = loc; } diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 18b1853436..6f96b9e426 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -159,7 +159,7 @@ public: void non_realtime_transport_stop (samplepos_t now, bool flush); virtual void realtime_handle_transport_stopped (); - virtual void realtime_locate () {} + virtual void realtime_locate (bool) {} virtual void non_realtime_locate (samplepos_t); void set_loop (ARDOUR::Location *); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index f97a30da0f..62742109be 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1693,7 +1693,7 @@ private: void force_locate (samplepos_t sample, bool with_roll = false); void set_transport_speed (double speed, samplepos_t destination_sample, bool abort = false, bool clear_state = false, bool as_default = false); void realtime_stop (bool abort, bool clear_state); - void realtime_locate (); + void realtime_locate (bool); void non_realtime_start_scrub (); void non_realtime_set_speed (); void non_realtime_locate (); |