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 #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 VCAAdded; PBD::Signal1 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(); } + +XMLNode& +VCAManager::get_state () +{ + XMLNode* node = new XMLNode (xml_node_name); + return *node; +} + +int +VCAManager::set_state (XMLNode const& node, int /*version*/) +{ + return 0; +}