mackie: initial attempt at making automation-related buttons set fader automation state for selected routes
This commit is contained in:
@@ -2416,3 +2416,20 @@ MackieControlProtocol::request_factory (uint32_t num_requests)
|
||||
*/
|
||||
return request_buffer_factory (num_requests);
|
||||
}
|
||||
|
||||
void
|
||||
MackieControlProtocol::set_automation_state (AutoState as)
|
||||
{
|
||||
for (RouteNotificationList::iterator wr = _last_selected_routes.begin(); wr != _last_selected_routes.end(); ++wr) {
|
||||
boost::shared_ptr<Route> r = (*wr).lock();
|
||||
if (!r) {
|
||||
continue;
|
||||
}
|
||||
boost::shared_ptr<AutomationControl> ac = r->gain_control();
|
||||
if (!ac) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ac->set_automation_state (as);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,6 +166,8 @@ class MackieControlProtocol
|
||||
bool is_mapped (boost::shared_ptr<ARDOUR::Route>) const;
|
||||
boost::shared_ptr<ARDOUR::Route> first_selected_route () const;
|
||||
|
||||
void set_automation_state (ARDOUR::AutoState);
|
||||
|
||||
void set_view_mode (ViewMode);
|
||||
int set_subview_mode (SubViewMode, boost::shared_ptr<ARDOUR::Route>);
|
||||
void set_flip_mode (FlipMode);
|
||||
|
||||
@@ -740,12 +740,13 @@ MackieControlProtocol::name_value_release (Button &)
|
||||
LedState
|
||||
MackieControlProtocol::touch_press (Button &)
|
||||
{
|
||||
return off;
|
||||
return none;
|
||||
}
|
||||
LedState
|
||||
MackieControlProtocol::touch_release (Button &)
|
||||
{
|
||||
return off;
|
||||
set_automation_state (ARDOUR::Touch);
|
||||
return none;
|
||||
}
|
||||
LedState
|
||||
MackieControlProtocol::cancel_press (Button &)
|
||||
@@ -810,14 +811,14 @@ MackieControlProtocol::master_fader_touch_release (Mackie::Button &)
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::read_press (Mackie::Button&)
|
||||
{
|
||||
_metering_active = !_metering_active;
|
||||
notify_metering_state_changed ();
|
||||
return _metering_active;
|
||||
return none;
|
||||
}
|
||||
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::read_release (Mackie::Button&)
|
||||
{
|
||||
return _metering_active;
|
||||
set_automation_state (ARDOUR::Off);
|
||||
return none;
|
||||
}
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::write_press (Mackie::Button&)
|
||||
@@ -827,6 +828,7 @@ MackieControlProtocol::write_press (Mackie::Button&)
|
||||
Mackie::LedState
|
||||
MackieControlProtocol::write_release (Mackie::Button&)
|
||||
{
|
||||
set_automation_state (ARDOUR::Write);
|
||||
return none;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user