diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index c833978175..85623a3077 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -832,8 +832,6 @@ public: bool loop_is_possible () const; PBD::Signal0 PunchLoopConstraintChange; - // Temporal::TempoMap& tempo_map() { *Temporal::TempoMap::fetch(); } - // const Temporal::TempoMap& tempo_map() const { return *Temporal::TempoMap::fetch(); } void maybe_update_tempo_from_midiclock_tempo (float bpm); unsigned int get_xrun_count () const {return _xrun_count; } diff --git a/libs/ardour/ardour/triggerbox.h b/libs/ardour/ardour/triggerbox.h index d755f080fd..7a2170960d 100644 --- a/libs/ardour/ardour/triggerbox.h +++ b/libs/ardour/ardour/triggerbox.h @@ -341,6 +341,9 @@ class LIBARDOUR_API TriggerBox : public Processor void note_on (int note_number, int velocity); void note_off (int note_number, int velocity); + void reconnect_to_default (); + void parameter_changed (std::string const &); + typedef std::map MidiTriggerMap; MidiTriggerMap midi_trigger_map; diff --git a/libs/ardour/triggerbox.cc b/libs/ardour/triggerbox.cc index b5da9b0ff3..ce330add31 100644 --- a/libs/ardour/triggerbox.cc +++ b/libs/ardour/triggerbox.cc @@ -944,6 +944,8 @@ TriggerBox::TriggerBox (Session& s, DataType dt) midi_trigger_map.insert (midi_trigger_map.end(), std::make_pair (uint8_t (36), 7)); Temporal::TempoMap::MapChanged.connect_same_thread (tempo_map_connection, boost::bind (&TriggerBox::tempo_map_change, this)); + + Config->ParameterChanged.connect_same_thread (*this, boost::bind (&TriggerBox::parameter_changed, this, _1)); } void @@ -1678,3 +1680,22 @@ TriggerBox::tempo_map_change () t->tempo_map_change (); } } + +void +TriggerBox::parameter_changed (std::string const & param) +{ + if (param == X_("default-trigger-input-port")) { + reconnect_to_default (); + } +} + +void +TriggerBox::reconnect_to_default () +{ + if (!_sidechain) { + return; + } + + _sidechain->input()->nth (0)->disconnect_all (); + _sidechain->input()->nth (0)->connect (Config->get_default_trigger_input_port()); +}