add access for triggerbox as a well-known (possibly null) processor in a route

This commit is contained in:
Paul Davis 2021-07-22 10:33:00 -06:00
parent a82b05b49c
commit c452dcda53
2 changed files with 10 additions and 0 deletions

View File

@ -95,6 +95,7 @@ class VCA;
class SoloIsolateControl;
class PhaseControl;
class MonitorControl;
class TriggerBox;
class LIBARDOUR_API Route : public Stripable,
public GraphNode,
@ -212,6 +213,7 @@ public:
boost::shared_ptr<PeakMeter> peak_meter() { return _meter; }
boost::shared_ptr<const PeakMeter> peak_meter() const { return _meter; }
boost::shared_ptr<PeakMeter> shared_peak_meter() const { return _meter; }
boost::shared_ptr<TriggerBox> triggerbox() const { return _triggerbox; }
void flush_processors ();
@ -702,6 +704,7 @@ protected:
boost::shared_ptr<Amp> _volume;
boost::shared_ptr<PeakMeter> _meter;
boost::shared_ptr<PolarityProcessor> _polarity;
boost::shared_ptr<TriggerBox> _triggerbox;
bool _volume_applies_to_output;

View File

@ -92,6 +92,7 @@
#include "ardour/session.h"
#include "ardour/solo_control.h"
#include "ardour/solo_isolate_control.h"
#include "ardour/triggerbox.h"
#include "ardour/types_convert.h"
#include "ardour/unknown_processor.h"
#include "ardour/utils.h"
@ -1029,6 +1030,7 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr<Processor>
// check if there's an instrument to replace or configure
for (ProcessorList::const_iterator i = others.begin(); i != others.end(); ++i) {
boost::shared_ptr<PluginInsert> pi;
if ((pi = boost::dynamic_pointer_cast<PluginInsert>(*i)) == 0) {
continue;
@ -1093,6 +1095,11 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr<Processor>
for (ProcessorList::const_iterator i = others.begin(); i != others.end(); ++i) {
boost::shared_ptr<TriggerBox> tb = boost::dynamic_pointer_cast<TriggerBox> (*i);
if (tb) {
_triggerbox = tb;
}
if (*i == _meter) {
continue;
}