X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fvca_manager.h;h=99be0c507e1103a409912c6ab6abf1f7e4ea4966;hb=b45a3c816484346f44cd65341fade0850670c2bb;hp=54cc14b572016d3957ca61a67909fd78a1f412a8;hpb=99d251de7d36d074f36ba5e8b549b0bf6a39016b;p=ardour.git diff --git a/libs/ardour/ardour/vca_manager.h b/libs/ardour/ardour/vca_manager.h index 54cc14b572..99be0c507e 100644 --- a/libs/ardour/ardour/vca_manager.h +++ b/libs/ardour/ardour/vca_manager.h @@ -28,33 +28,46 @@ #include #include "pbd/signals.h" +#include "pbd/statefuldestructible.h" #include "ardour/session_handle.h" #include "ardour/types.h" +#include "ardour/libardour_visibility.h" namespace ARDOUR { class VCA; -class VCAManager : public SessionHandleRef +class LIBARDOUR_API VCAManager : public SessionHandleRef, public PBD::StatefulDestructible { public: VCAManager (ARDOUR::Session&); ~VCAManager (); - boost::shared_ptr create_vca (std::string const & name = std::string()); + int create_vca (uint32_t how_many, std::string const & name = std::string()); void remove_vca (boost::shared_ptr); - typedef std::list > VCAS; - VCAS vcas() const; + boost::shared_ptr vca_by_number(int32_t) const; + + VCAList vcas() const; + VCAList::size_type n_vcas() const { return _vcas.size(); } PBD::Signal1 VCAAdded; - PBD::Signal1 VCARemoved; + + XMLNode& get_state(); + int set_state (XMLNode const&, int version); + + bool vcas_loaded() const { return _vcas_loaded; } + void clear_all_solo_state (); + + static std::string xml_node_name; private: mutable Glib::Threads::Mutex lock; - VCAS _vcas; + VCAList _vcas; + bool _vcas_loaded; + void clear (); }; } // namespace