diff options
author | Robin Gareus <robin@gareus.org> | 2017-10-31 18:32:26 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-10-31 18:32:26 +0100 |
commit | 00a4ad712c2d5ac73f04b0f43906590b24a22fb6 (patch) | |
tree | c849d672536222bc173c0e6fbbe3d38739dcbaf8 /libs/ardour/ardour | |
parent | 8e8168547bef7e404f70916fa3838cbe5c15bc62 (diff) |
Move Loop Location to Processors
The processors will becomes responsible to know about loop-positions
and map latency-compensated start_sample, end_sample into the loop-range
as needed.
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/disk_io.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/processor.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/route.h | 3 | ||||
-rw-r--r-- | libs/ardour/ardour/track.h | 2 |
4 files changed, 7 insertions, 6 deletions
diff --git a/libs/ardour/ardour/disk_io.h b/libs/ardour/ardour/disk_io.h index 74eede7644..3fae063c1e 100644 --- a/libs/ardour/ardour/disk_io.h +++ b/libs/ardour/ardour/disk_io.h @@ -89,9 +89,6 @@ class LIBARDOUR_API DiskIOProcessor : public Processor bool slaved() const { return _slaved; } void set_slaved(bool yn) { _slaved = yn; } - int set_loop (Location *loc); - - PBD::Signal1<void,Location *> LoopSet; PBD::Signal0<void> SpeedChanged; PBD::Signal0<void> ReverseChanged; @@ -122,7 +119,6 @@ class LIBARDOUR_API DiskIOProcessor : public Processor double _target_speed; bool _seek_required; bool _slaved; - Location* loop_location; bool in_set_state; samplepos_t playback_sample; bool _need_butler; diff --git a/libs/ardour/ardour/processor.h b/libs/ardour/ardour/processor.h index f3325a1194..139a5cf592 100644 --- a/libs/ardour/ardour/processor.h +++ b/libs/ardour/ardour/processor.h @@ -40,6 +40,7 @@ class PluginPinWindowProxy; namespace ARDOUR { +class Location; class Session; class Route; @@ -108,6 +109,8 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public virtual void realtime_handle_transport_stopped () {} virtual void realtime_locate () {} + virtual void set_loop (Location *loc) { _loop_location = loc; } + /* most processors won't care about this, but plugins that receive MIDI or similar data from an input source that may suddenly go "quiet" because of monitoring changes @@ -167,6 +170,7 @@ protected: // absolute alignment to session i/o samplecnt_t _capture_offset; samplecnt_t _playback_offset; + Location* _loop_location; }; } // namespace ARDOUR diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index f903a49bac..ba262d61e8 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -78,6 +78,7 @@ class PluginInsert; class RouteGroup; class Send; class InternalReturn; +class Location; class MonitorControl; class MonitorProcessor; class Pannable; @@ -152,6 +153,7 @@ public: virtual void realtime_locate () {} virtual void non_realtime_locate (samplepos_t); virtual void set_pending_declick (int); + int set_loop (ARDOUR::Location *); /* end of vfunc-based API */ @@ -672,6 +674,7 @@ protected: FedBy _fed_by; InstrumentInfo _instrument_info; + Location* _loop_location; virtual ChanCount input_streams () const; diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h index 6b024274f0..7703221bd4 100644 --- a/libs/ardour/ardour/track.h +++ b/libs/ardour/ardour/track.h @@ -37,7 +37,6 @@ class Region; class DiskReader; class DiskWriter; class IO; -class Location; class RecordEnableControl; class RecordSafeControl; @@ -144,7 +143,6 @@ public: void non_realtime_speed_change (); int overwrite_existing_buffers (); samplecnt_t get_captured_samples (uint32_t n = 0) const; - int set_loop (ARDOUR::Location *); void transport_looped (samplepos_t); void transport_stopped_wallclock (struct tm &, time_t, bool); bool pending_overwrite () const; |