Session HAS-A VCAManager
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 26 Jan 2016 05:18:03 +0000 (00:18 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 31 May 2016 19:30:38 +0000 (15:30 -0400)
libs/ardour/ardour/session.h
libs/ardour/session.cc
libs/ardour/session_state.cc

index 8d6dabd33100d9293b74408efd1bbe8761c71502..e774666ce5888ba14fd7d3df90d97ae83114d919 100644 (file)
@@ -148,6 +148,7 @@ class Source;
 class Speakers;
 class TempoMap;
 class Track;
+class VCAManager;
 class WindowsVSTPlugin;
 
 extern void setup_enum_writer ();
@@ -331,7 +332,7 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        void maybe_enable_record ();
        void disable_record (bool rt_context, bool force = false);
        void step_back_from_record ();
-       
+
        void set_all_tracks_record_enabled(bool);
 
        void maybe_write_autosave ();
@@ -1122,6 +1123,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        void reconnect_ltc_input ();
        void reconnect_ltc_output ();
 
+       VCAManager& vca_manager() { return *_vca_manager; }
+
   protected:
        friend class AudioEngine;
        void set_block_size (pframes_t nframes);
@@ -1984,6 +1987,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
        static const uint32_t session_end_shift;
 
        std::string _template_state_dir;
+
+       VCAManager* _vca_manager;
 };
 
 
index e751cfbe38bf4854ba3316283b635f6a84fe1103..da370181cede11fe3fe1249b3c931a257d14ed7d 100644 (file)
 #include "ardour/track.h"
 #include "ardour/user_bundle.h"
 #include "ardour/utils.h"
+#include "ardour/vca_manager.h"
 
 #include "midi++/port.h"
 #include "midi++/mmc.h"
@@ -311,6 +312,7 @@ Session::Session (AudioEngine &eng,
        , _scene_changer (0)
        , _midi_ports (0)
        , _mmc (0)
+       , _vca_manager (0)
 {
        uint32_t sr = 0;
 
@@ -746,6 +748,7 @@ Session::destroy ()
 
        delete midi_clock;
        delete _tempo_map;
+       delete _vca_manager;
 
        /* clear event queue, the session is gone, nobody is interested in
         * those anymore, but they do leak memory if not removed
index 11b28a1e76f8b99378e967ccbda55b0b83365534..15ae5e08e144cb3a50eb9729e71c950955cccdcf 100644 (file)
 #include "ardour/tempo.h"
 #include "ardour/ticker.h"
 #include "ardour/user_bundle.h"
+#include "ardour/vca_manager.h"
 
 #include "control_protocol/control_protocol.h"
 
@@ -171,6 +172,7 @@ Session::pre_engine_init (string fullpath)
        set_next_event ();
        _all_route_group->set_active (true, this);
        interpolation.add_channel_to (0, 0);
+       _vca_manager = new VCAManager (*this);
 
        if (config.get_use_video_sync()) {
                waiting_for_sync_offset = true;