diff --git a/gtk2_ardour/audio_trigger_properties_box.cc b/gtk2_ardour/audio_trigger_properties_box.cc index e2aab4b56e..a72e70e17a 100644 --- a/gtk2_ardour/audio_trigger_properties_box.cc +++ b/gtk2_ardour/audio_trigger_properties_box.cc @@ -44,35 +44,6 @@ using namespace ArdourWidgets; using std::max; using std::min; -void -TriggerPropertiesBox::set_trigger (TriggerReference tr) -{ - tref = tr; - tref.trigger()->PropertyChanged.connect (_state_connection, invalidator (*this), boost::bind (&TriggerPropertiesBox::trigger_changed, this, _1), gui_context ()); - tref.box->TriggerSwapped.connect (trigger_swap_connection, MISSING_INVALIDATOR, boost::bind (&TriggerPropertiesBox::trigger_swap, this, _1), gui_context ()); - - PBD::PropertyChange changed; - changed.add (ARDOUR::Properties::name); - changed.add (ARDOUR::Properties::running); - trigger_changed (changed); -} - -void -TriggerPropertiesBox::trigger_swap (uint32_t n) -{ - if (n != tref.slot) { - /* some other slot in the same box got swapped. we don't care */ - return; - } - _state_connection.disconnect (); - tref.trigger()->PropertyChanged.connect (_state_connection, invalidator (*this), boost::bind (&TriggerPropertiesBox::trigger_changed, this, _1), gui_context ()); - - PBD::PropertyChange changed; - changed.add (ARDOUR::Properties::name); - changed.add (ARDOUR::Properties::running); - trigger_changed (changed); -} - AudioTriggerPropertiesBox::AudioTriggerPropertiesBox () : _length_clock (X_("regionlength"), true, "", true, false, true) , _start_clock (X_("regionstart"), true, "", false, false) @@ -220,19 +191,7 @@ AudioTriggerPropertiesBox::set_session (Session* s) } void -AudioTriggerPropertiesBox::set_trigger (ARDOUR::TriggerReference tr) -{ - boost::shared_ptr audio_trigger = boost::dynamic_pointer_cast (tr.trigger()); - - if (!audio_trigger) { - return; - } - - TriggerPropertiesBox::set_trigger (tr); -} - -void -AudioTriggerPropertiesBox::trigger_changed (const PBD::PropertyChange& what_changed) +AudioTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& what_changed) { TriggerPtr trigger (tref.trigger()); diff --git a/gtk2_ardour/audio_trigger_properties_box.h b/gtk2_ardour/audio_trigger_properties_box.h index d41aeb68a4..f218106dcc 100644 --- a/gtk2_ardour/audio_trigger_properties_box.h +++ b/gtk2_ardour/audio_trigger_properties_box.h @@ -31,24 +31,18 @@ #include "widgets/ardour_button.h" #include "audio_clock.h" +#include "trigger_ui.h" -class TriggerPropertiesBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr +class TriggerPropertiesBox : public Gtk::VBox, public ARDOUR::SessionHandlePtr, public TriggerUI { public: TriggerPropertiesBox () {} ~TriggerPropertiesBox () {} - virtual void set_trigger (ARDOUR::TriggerReference) = 0; - protected: - ARDOUR::TriggerReference tref; Gtk::Label _header_label; - virtual void trigger_changed (const PBD::PropertyChange& what_changed) = 0; - void trigger_swap (uint32_t); - PBD::ScopedConnection _state_connection; - PBD::ScopedConnection trigger_swap_connection; }; class AudioTriggerPropertiesBox : public TriggerPropertiesBox @@ -57,13 +51,12 @@ public: AudioTriggerPropertiesBox (); ~AudioTriggerPropertiesBox (); - void set_trigger (ARDOUR::TriggerReference); - void set_session (ARDOUR::Session*); protected: + virtual void on_trigger_changed (const PBD::PropertyChange& what_changed); + void toggle_stretch (); - void trigger_changed (const PBD::PropertyChange& what_changed); void start_clock_changed(); void length_clock_changed(); diff --git a/gtk2_ardour/midi_trigger_properties_box.cc b/gtk2_ardour/midi_trigger_properties_box.cc index af10a098db..5643e800ab 100644 --- a/gtk2_ardour/midi_trigger_properties_box.cc +++ b/gtk2_ardour/midi_trigger_properties_box.cc @@ -79,19 +79,7 @@ MidiTriggerPropertiesBox::~MidiTriggerPropertiesBox () } void -MidiTriggerPropertiesBox::set_trigger (ARDOUR::TriggerReference tr) -{ - boost::shared_ptr midi_trigger = boost::dynamic_pointer_cast (tr.trigger()); - - if (!midi_trigger) { - return; - } - - TriggerPropertiesBox::set_trigger (tr); -} - -void -MidiTriggerPropertiesBox::trigger_changed (const PBD::PropertyChange& what_changed) +MidiTriggerPropertiesBox::on_trigger_changed (const PBD::PropertyChange& what_changed) { /* CC and Pgm stuff ...? */ } diff --git a/gtk2_ardour/midi_trigger_properties_box.h b/gtk2_ardour/midi_trigger_properties_box.h index caaa35bce3..62850a1452 100644 --- a/gtk2_ardour/midi_trigger_properties_box.h +++ b/gtk2_ardour/midi_trigger_properties_box.h @@ -33,10 +33,8 @@ public: MidiTriggerPropertiesBox (); ~MidiTriggerPropertiesBox (); - void set_trigger (ARDOUR::TriggerReference); - protected: - void trigger_changed (const PBD::PropertyChange& what_changed); + virtual void on_trigger_changed (const PBD::PropertyChange& what_changed); private: ArdourWidgets::ArdourButton _patch_enable_button;