summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-01-26 00:18:03 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:38 -0400
commitc61a5cabc788b170768f54737f3d3b869141aa81 (patch)
treeebaa4a4ba2811496a4342d5a2d9ed0c9ab4a8710 /libs
parentab9bb49f39c79ce48e39d99a617c2bccd259e6eb (diff)
Session HAS-A VCAManager
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h7
-rw-r--r--libs/ardour/session.cc3
-rw-r--r--libs/ardour/session_state.cc2
3 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 8d6dabd331..e774666ce5 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -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;
};
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index e751cfbe38..da370181ce 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -105,6 +105,7 @@
#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
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 11b28a1e76..15ae5e08e1 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -119,6 +119,7 @@
#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;