trigger_ui: refactor property_boxen to subclasses of TriggerUI
This commit is contained in:
parent
7ddecb91e0
commit
5f0839141b
@ -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<ARDOUR::AudioTrigger> audio_trigger = boost::dynamic_pointer_cast<ARDOUR::AudioTrigger> (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());
|
||||
|
||||
|
@ -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();
|
||||
|
@ -79,19 +79,7 @@ MidiTriggerPropertiesBox::~MidiTriggerPropertiesBox ()
|
||||
}
|
||||
|
||||
void
|
||||
MidiTriggerPropertiesBox::set_trigger (ARDOUR::TriggerReference tr)
|
||||
{
|
||||
boost::shared_ptr<ARDOUR::MIDITrigger> midi_trigger = boost::dynamic_pointer_cast<ARDOUR::MIDITrigger> (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 ...? */
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user