From 2cf9ad8f8c21cc445c8eabc6856fd9956926203f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2019 15:44:57 -0600 Subject: refactor SessionEvent and DiskIO so that we pass around boost::shared_ptr rather than Route (this the raw pointers used inside SessionEvent) --- libs/ardour/ardour/disk_io.h | 9 ++++----- libs/ardour/ardour/disk_reader.h | 1 + libs/ardour/ardour/midi_track.h | 1 + libs/ardour/ardour/session.h | 4 ++-- libs/ardour/ardour/session_event.h | 9 +++++---- 5 files changed, 13 insertions(+), 11 deletions(-) (limited to 'libs/ardour/ardour') 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 class MidiRingBuffer; @@ -64,8 +63,8 @@ public: DiskIOProcessor (Session&, const std::string& name, Flag f); virtual ~DiskIOProcessor (); - void set_route (boost::shared_ptr); - void drop_route (); + void set_track (boost::shared_ptr); + 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; + boost::shared_ptr _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 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& 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); + void request_overwrite_buffer (boost::shared_ptr); 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); 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; + 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 t) { + track = t; } bool before (const SessionEvent& other) const { -- cgit v1.2.3