faderport: add 100msec (10Hz) periodic update to facilitate automation playback
This commit is contained in:
parent
40a352e8a1
commit
d59739d728
@ -560,6 +560,10 @@ FaderPort::set_active (bool yn)
|
||||
blink_connection = blink_timeout->connect (sigc::mem_fun (*this, &FaderPort::blink));
|
||||
blink_timeout->attach (main_loop()->get_context());
|
||||
|
||||
Glib::RefPtr<Glib::TimeoutSource> periodic_timeout = Glib::TimeoutSource::create (100); // milliseconds
|
||||
periodic_connection = blink_timeout->connect (sigc::mem_fun (*this, &FaderPort::periodic));
|
||||
periodic_timeout->attach (main_loop()->get_context());
|
||||
|
||||
} else {
|
||||
|
||||
BaseUI::quit ();
|
||||
@ -574,6 +578,22 @@ FaderPort::set_active (bool yn)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool
|
||||
FaderPort::periodic ()
|
||||
{
|
||||
if (!_current_route) {
|
||||
return true;
|
||||
}
|
||||
|
||||
ARDOUR::AutoState gain_state = _current_route->gain_control()->automation_state();
|
||||
|
||||
if (gain_state == ARDOUR::Touch || gain_state == ARDOUR::Play) {
|
||||
map_gain ();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
FaderPort::stop_blinking (ButtonID id)
|
||||
{
|
||||
|
@ -281,6 +281,9 @@ class FaderPort : public ARDOUR::ControlProtocol, public AbstractUI<FaderPortReq
|
||||
void map_recenable_state ();
|
||||
void map_transport_state ();
|
||||
|
||||
sigc::connection periodic_connection;
|
||||
bool periodic ();
|
||||
|
||||
sigc::connection blink_connection;
|
||||
typedef std::list<ButtonID> Blinkers;
|
||||
Blinkers blinkers;
|
||||
|
Loading…
Reference in New Issue
Block a user