diff options
author | Robin Gareus <robin@gareus.org> | 2017-08-18 22:00:24 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-08-18 22:00:24 +0200 |
commit | be6abce398a82e2387aa6423993f039db6d2b9bf (patch) | |
tree | 8c7efa78a0265b3e67fe004fac220cf45004ec26 | |
parent | 08c1300718157d08aed265c11c21d22719008aa2 (diff) |
Add Lua binding to un/assign VCAs
-rw-r--r-- | libs/ardour/ardour/vca_manager.h | 1 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 9 | ||||
-rw-r--r-- | libs/ardour/vca_manager.cc | 14 |
3 files changed, 24 insertions, 0 deletions
diff --git a/libs/ardour/ardour/vca_manager.h b/libs/ardour/ardour/vca_manager.h index 356ed63292..2270a77e94 100644 --- a/libs/ardour/ardour/vca_manager.h +++ b/libs/ardour/ardour/vca_manager.h @@ -48,6 +48,7 @@ public: void remove_vca (boost::shared_ptr<VCA>); boost::shared_ptr<VCA> vca_by_number(int32_t) const; + boost::shared_ptr<VCA> vca_by_name (std::string const&) const; VCAList vcas() const; VCAList::size_type n_vcas() const { return _vcas.size(); } diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 04275991b7..01aca89015 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -196,6 +196,7 @@ CLASSKEYS(ARDOUR::PresentationInfo); CLASSKEYS(ARDOUR::RCConfiguration); CLASSKEYS(ARDOUR::Session); CLASSKEYS(ARDOUR::SessionConfiguration); +CLASSKEYS(ARDOUR::Slavable); CLASSKEYS(ARDOUR::Source); CLASSKEYS(ARDOUR::VCA); CLASSKEYS(ARDOUR::VCAManager); @@ -958,6 +959,11 @@ LuaBindings::common (lua_State* L) .addConst ("max_order", ARDOUR::PresentationInfo::max_order) .endClass () + .beginWSPtrClass <Slavable> ("Slavable") + .addFunction ("assign", &Slavable::assign) + .addFunction ("unassign", &Slavable::unassign) + .endClass () + .deriveWSPtrClass <Stripable, SessionObject> ("Stripable") .addCast<Route> ("to_route") .addCast<VCA> ("to_vca") @@ -1019,6 +1025,7 @@ LuaBindings::common (lua_State* L) .deriveWSPtrClass <Route, Stripable> ("Route") .addCast<Track> ("to_track") .addCast<Automatable> ("to_automatable") + .addCast<Slavable> ("to_slavable") .addFunction ("set_name", &Route::set_name) .addFunction ("comment", &Route::comment) .addFunction ("active", &Route::active) @@ -1250,6 +1257,7 @@ LuaBindings::common (lua_State* L) .endClass () .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable") + .addCast<Slavable> ("to_slavable") .addFunction ("automation_control", (boost::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control) //.addFunction ("what_can_be_automated", &Automatable::what_can_be_automated) .endClass () @@ -2028,6 +2036,7 @@ LuaBindings::common (lua_State* L) .addFunction ("create_vca", &VCAManager::create_vca) .addFunction ("remove_vca", &VCAManager::remove_vca) .addFunction ("vca_by_number", &VCAManager::vca_by_number) + .addFunction ("vca_by_name", &VCAManager::vca_by_name) .addFunction ("vcas", &VCAManager::vcas) .addFunction ("n_vcas", &VCAManager::n_vcas) .endClass() diff --git a/libs/ardour/vca_manager.cc b/libs/ardour/vca_manager.cc index f8b566ecaf..62589c8fdf 100644 --- a/libs/ardour/vca_manager.cc +++ b/libs/ardour/vca_manager.cc @@ -152,6 +152,20 @@ VCAManager::vca_by_number (int32_t n) const return boost::shared_ptr<VCA>(); } +boost::shared_ptr<VCA> +VCAManager::vca_by_name (std::string const& name) const +{ + Mutex::Lock lm (lock); + + for (VCAList::const_iterator i = _vcas.begin(); i != _vcas.end(); ++i) { + if ((*i)->name() == name || (*i)->full_name() == name) { + return *i; + } + } + + return boost::shared_ptr<VCA>(); +} + XMLNode& VCAManager::get_state () { |