13
0

faderport: add 100msec (10Hz) periodic update to facilitate automation playback

This commit is contained in:
Paul Davis 2015-12-14 13:28:24 -05:00
parent 40a352e8a1
commit d59739d728
2 changed files with 23 additions and 0 deletions

View File

@ -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)
{

View File

@ -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;