diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 08f8689c29..dc884d9b40 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1342,6 +1342,7 @@ public: bool bang_trigger_at(int32_t route_index, int32_t row_index, float velocity = 1.0); bool unbang_trigger_at(int32_t route_index, int32_t row_index); void clear_cue (int row_index); + std::shared_ptr armed_triggerbox () const; void start_domain_bounce (Temporal::DomainBounceInfo&); void finish_domain_bounce (Temporal::DomainBounceInfo&); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index f85d234515..42c9f81c32 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -8197,3 +8197,20 @@ Session::have_external_connections_for_current_backend (bool tracks_only) const } return false; } + +std::shared_ptr +Session::armed_triggerbox () const +{ + std::shared_ptr armed_tb; + std::shared_ptr rl = routes.reader(); + + for (auto const & r : *rl) { + std::shared_ptr tb = r->triggerbox(); + if (tb && tb->armed()) { + armed_tb = tb; + break; + } + } + + return armed_tb; +}