summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-02-29 16:06:30 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:38 -0400
commitbfd0ba7bf38f31cc575403dd7ba86b9a2470de89 (patch)
treebc19f3862e3fa36b2c559ba4f2352ed3b0c1f384
parent4478bdc1d102c8e75779a1624879ab37963b848a (diff)
add a bit of state to VCAManager
-rw-r--r--libs/ardour/ardour/vca_manager.h8
-rw-r--r--libs/ardour/vca_manager.cc18
2 files changed, 25 insertions, 1 deletions
diff --git a/libs/ardour/ardour/vca_manager.h b/libs/ardour/ardour/vca_manager.h
index 764b966941..10e76db860 100644
--- a/libs/ardour/ardour/vca_manager.h
+++ b/libs/ardour/ardour/vca_manager.h
@@ -28,6 +28,7 @@
#include <glibmm/threads.h>
#include "pbd/signals.h"
+#include "pbd/statefuldestructible.h"
#include "ardour/session_handle.h"
#include "ardour/types.h"
@@ -36,7 +37,7 @@ namespace ARDOUR {
class VCA;
-class VCAManager : public SessionHandleRef
+class VCAManager : public SessionHandleRef, public PBD::StatefulDestructible
{
public:
VCAManager (ARDOUR::Session&);
@@ -53,6 +54,11 @@ class VCAManager : public SessionHandleRef
PBD::Signal1<void,VCAList&> VCAAdded;
PBD::Signal1<void,VCAList&> VCARemoved;
+ XMLNode& get_state();
+ int set_state (XMLNode const&, int version);
+
+ static std::string xml_node_name;
+
private:
mutable Glib::Threads::Mutex lock;
VCAS _vcas;
diff --git a/libs/ardour/vca_manager.cc b/libs/ardour/vca_manager.cc
index 476cd02bda..7cef8e932c 100644
--- a/libs/ardour/vca_manager.cc
+++ b/libs/ardour/vca_manager.cc
@@ -23,10 +23,13 @@
#include "ardour/vca.h"
#include "ardour/vca_manager.h"
+#include "i18n.h"
+
using namespace ARDOUR;
using namespace Glib::Threads;
using std::string;
+string VCAManager::xml_node_name (X_("VCAManager"));
VCAManager::VCAManager (Session& s)
: SessionHandleRef (s)
@@ -35,6 +38,8 @@ VCAManager::VCAManager (Session& s)
VCAManager::~VCAManager ()
{
+ Mutex::Lock lm (lock);
+ _vcas.clear ();
}
VCAManager::VCAS
@@ -102,3 +107,16 @@ VCAManager::vca_by_number (uint32_t n) const
return boost::shared_ptr<VCA>();
}
+
+XMLNode&
+VCAManager::get_state ()
+{
+ XMLNode* node = new XMLNode (xml_node_name);
+ return *node;
+}
+
+int
+VCAManager::set_state (XMLNode const& node, int /*version*/)
+{
+ return 0;
+}