Start/end touch for generic-UI knob and proc-box inline ctrls

This commit is contained in:
Robin Gareus 2017-07-23 19:44:45 +02:00
parent 183351f333
commit 25df9f1ba5
3 changed files with 28 additions and 0 deletions

View File

@ -98,6 +98,8 @@ AutomationController::AutomationController(boost::shared_ptr<AutomationControl>
knob->set_controllable (ac);
knob->set_name("processor control knob");
_widget = knob;
knob->StartGesture.connect(sigc::mem_fun(*this, &AutomationController::start_touch));
knob->StopGesture.connect(sigc::mem_fun(*this, &AutomationController::end_touch));
} else {
AutomationBarController* bar = manage(new AutomationBarController(ac, adj));

View File

@ -851,6 +851,9 @@ ProcessorEntry::Control::Control (boost::shared_ptr<AutomationControl> c, string
_adjustment.set_page_increment (largestep);
_slider.set_default_value (normal);
_slider.StartGesture.connect(sigc::mem_fun(*this, &Control::start_touch));
_slider.StopGesture.connect(sigc::mem_fun(*this, &Control::end_touch));
_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &Control::slider_adjusted));
c->Changed.connect (_connections, invalidator (*this), boost::bind (&Control::control_changed, this), gui_context ());
if (c->alist ()) {
@ -901,6 +904,26 @@ ProcessorEntry::Control::slider_adjusted ()
set_tooltip ();
}
void
ProcessorEntry::Control::start_touch ()
{
boost::shared_ptr<AutomationControl> c = _control.lock ();
if (!c) {
return;
}
c->start_touch (c->session().transport_frame());
}
void
ProcessorEntry::Control::end_touch ()
{
boost::shared_ptr<AutomationControl> c = _control.lock ();
if (!c) {
return;
}
c->stop_touch (true, c->session().transport_frame());
}
void
ProcessorEntry::Control::button_clicked ()
{

View File

@ -223,6 +223,9 @@ private:
std::string state_id () const;
void set_tooltip ();
void start_touch ();
void end_touch ();
boost::weak_ptr<ARDOUR::AutomationControl> _control;
/* things for a slider */
Gtk::Adjustment _adjustment;