#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
{
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;
};
/* 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) */
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;
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;
sigc::connection ports_created_c;
sigc::connection plmod_connection;
sigc::connection plgone_connection;
+ sigc::connection plregion_connection;
Flag _flags;
};