Optimize automation-event process splitting
[ardour.git] / libs / ardour / ardour / processor.h
index f3325a11944c9c01bdf13aed662d6200ffe260a4..ea982035bc63dc375fe3d77288ab0a01cdd53cb1 100644 (file)
@@ -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
@@ -149,6 +152,8 @@ protected:
        virtual XMLNode& state ();
        virtual int set_state_2X (const XMLNode&, int version);
 
+       bool map_loop_range (samplepos_t& start, samplepos_t& end) const;
+
        int       _pending_active;
        bool      _active;
        bool      _next_ab_is_active;
@@ -167,6 +172,7 @@ protected:
        // absolute alignment to session i/o
        samplecnt_t _capture_offset;
        samplecnt_t _playback_offset;
+       Location*   _loop_location;
 };
 
 } // namespace ARDOUR