summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-10-17 15:44:57 -0600
committerPaul Davis <paul@linuxaudiosystems.com>2019-11-02 16:32:18 -0600
commit2cf9ad8f8c21cc445c8eabc6856fd9956926203f (patch)
tree53227bb8f61f20d669806f2508aa308f6abdd264 /libs/ardour/ardour
parent5b92ef435390ee9fbffc4ad964f7497cf46a3d3f (diff)
refactor SessionEvent and DiskIO so that we pass around boost::shared_ptr<Track> rather than Route
(this the raw pointers used inside SessionEvent)
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/disk_io.h9
-rw-r--r--libs/ardour/ardour/disk_reader.h1
-rw-r--r--libs/ardour/ardour/midi_track.h1
-rw-r--r--libs/ardour/ardour/session.h4
-rw-r--r--libs/ardour/ardour/session_event.h9
5 files changed, 13 insertions, 11 deletions
diff --git a/libs/ardour/ardour/disk_io.h b/libs/ardour/ardour/disk_io.h
index fc420f48a9..fc9424c217 100644
--- a/libs/ardour/ardour/disk_io.h
+++ b/libs/ardour/ardour/disk_io.h
@@ -43,8 +43,7 @@ class AudioPlaylist;
class Location;
class MidiPlaylist;
class Playlist;
-class Route;
-class Route;
+class Track;
class Session;
template<typename T> class MidiRingBuffer;
@@ -64,8 +63,8 @@ public:
DiskIOProcessor (Session&, const std::string& name, Flag f);
virtual ~DiskIOProcessor ();
- void set_route (boost::shared_ptr<Route>);
- void drop_route ();
+ void set_track (boost::shared_ptr<Track>);
+ void drop_track ();
static void set_buffering_parameters (BufferingPreset bp);
@@ -122,7 +121,7 @@ protected:
bool in_set_state;
samplepos_t playback_sample;
bool _need_butler;
- boost::shared_ptr<Route> _route;
+ boost::shared_ptr<Track> _track;
void init ();
diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h
index 64a72cdd35..384bbbc2ce 100644
--- a/libs/ardour/ardour/disk_reader.h
+++ b/libs/ardour/ardour/disk_reader.h
@@ -32,6 +32,7 @@ namespace ARDOUR
class Playlist;
class AudioPlaylist;
class MidiPlaylist;
+
template<typename T> class MidiRingBuffer;
class LIBARDOUR_API DiskReader : public DiskIOProcessor
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index 74d58e4db2..e32b1c5b32 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -130,6 +130,7 @@ public:
MonitorState get_auto_monitoring_state () const;
MidiBuffer const& immediate_event_buffer () const { return _immediate_event_buffer; }
+ MidiRingBuffer<samplepos_t>& immediate_events () { return _immediate_events; }
void set_input_active (bool);
bool input_active () const;
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index decf9f7991..2c760a6b1e 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -456,7 +456,7 @@ public:
void allow_auto_play (bool yn);
void request_transport_speed (double speed, bool as_default = true, TransportRequestSource origin = TRS_UI);
void request_transport_speed_nonzero (double, bool as_default = true, TransportRequestSource origin = TRS_UI);
- void request_overwrite_buffer (boost::shared_ptr<Route>);
+ void request_overwrite_buffer (boost::shared_ptr<Track>);
void adjust_playback_buffering();
void adjust_capture_buffering();
@@ -1685,7 +1685,7 @@ private:
void set_play_loop (bool yn, double speed);
void unset_play_loop ();
- void overwrite_some_buffers (Track *);
+ void overwrite_some_buffers (boost::shared_ptr<Route>);
void flush_all_inserts ();
int micro_locate (samplecnt_t distance);
diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h
index 98fe6838f5..da6a0505f2 100644
--- a/libs/ardour/ardour/session_event.h
+++ b/libs/ardour/ardour/session_event.h
@@ -37,6 +37,7 @@ namespace ARDOUR {
class TransportMaster;
class Region;
+class Track;
class LIBARDOUR_API SessionEvent {
public:
@@ -80,12 +81,12 @@ public:
double speed;
union {
- void* ptr;
bool yes_or_no;
samplepos_t target2_sample;
- Route* route;
};
+ boost::shared_ptr<Track> track;
+
union {
bool second_yes_or_no;
double control_value;
@@ -113,8 +114,8 @@ public:
SessionEvent (Type t, Action a, samplepos_t when, samplepos_t where, double spd, bool yn = false, bool yn2 = false, bool yn3 = false);
- void set_ptr (void* p) {
- ptr = p;
+ void set_track (boost::shared_ptr<Track> t) {
+ track = t;
}
bool before (const SessionEvent& other) const {