Tidy.
[ardour.git] / libs / ardour / ardour / diskstream.h
index 824d8646639a04fbcfe6c838a868ec14b2047dc0..03d2e23cbd4285829c1c186e9039b5e1d2cb3456 100644 (file)
 #ifndef __ardour_diskstream_h__
 #define __ardour_diskstream_h__
 
-#include <sigc++/signal.h>
-
-#include <cmath>
 #include <string>
 #include <queue>
 #include <map>
 #include <vector>
-
+#include <cmath>
 #include <time.h>
 
+#include <sigc++/signal.h>
+
+#include <evoral/types.hpp>
+
 #include <pbd/fastlog.h>
 #include <pbd/ringbufferNPT.h>
 #include <pbd/stateful.h>
 
 #include <ardour/ardour.h>
 #include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/route_group.h>
-#include <ardour/route.h>
-#include <ardour/port.h>
+#include <ardour/location.h>
+#include <ardour/session_object.h>
+#include <ardour/types.h>
 #include <ardour/utils.h>
+#include <ardour/chan_count.h>
 
 struct tm;
 
 namespace ARDOUR {
 
 class AudioEngine;
+class IO;
+class Playlist;
+class Processor;
+class Region;
 class Send;
 class Session;
-class Playlist;
-class IO;
 
 class Diskstream : public SessionObject
 {      
@@ -140,6 +143,9 @@ class Diskstream : public SessionObject
 
        void remove_region_from_last_capture (boost::weak_ptr<Region> wregion);
 
+       void move_processor_automation (boost::weak_ptr<Processor>,
+                       list< Evoral::RangeMove<nframes_t> > const &);
+
        sigc::signal<void>            RecordEnableChanged;
        sigc::signal<void>            SpeedChanged;
        sigc::signal<void>            ReverseChanged;
@@ -194,7 +200,7 @@ class Diskstream : public SessionObject
        };
 
        /* The two central butler operations */
-       virtual int do_flush (Session::RunContext context, bool force = false) = 0;
+       virtual int do_flush (RunContext context, bool force = false) = 0;
        virtual int do_refill () = 0;
        
        /** For non-butler contexts (allocates temporary working buffers) */
@@ -204,6 +210,7 @@ class Diskstream : public SessionObject
 
        virtual void playlist_changed (Change);
        virtual void playlist_deleted (boost::weak_ptr<Playlist>);
+       virtual void playlist_ranges_moved (list< Evoral::RangeMove<nframes_t> > const &);
 
        virtual void transport_stopped (struct tm&, time_t, bool abort) = 0;
        virtual void transport_looped (nframes_t transport_frame) = 0;
@@ -274,9 +281,13 @@ class Diskstream : public SessionObject
        nframes_t            wrap_buffer_size;
        nframes_t            speed_buffer_size;
 
-       uint64_t                  last_phase;
-       uint64_t                  phi;
-       uint64_t                  target_phi;
+       uint64_t             last_phase;
+       
+       /// diskstream speed in 40.24 fixed point math
+       uint64_t             phi;
+       
+       /// target diskstream speed in 40.24 fixed point math
+       uint64_t             target_phi;
        
        nframes_t            file_frame;                
        nframes_t            playback_sample;
@@ -299,6 +310,7 @@ class Diskstream : public SessionObject
        sigc::connection ports_created_c;
        sigc::connection plmod_connection;
        sigc::connection plgone_connection;
+       sigc::connection plregion_connection;
        
        Flag _flags;
 };