summaryrefslogtreecommitdiff
path: root/libs/surfaces/mackie/mackie_control_protocol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/mackie/mackie_control_protocol.cc')
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc23
1 files changed, 12 insertions, 11 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index fb7d30b107..caf0172558 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -293,7 +293,7 @@ void MackieControlProtocol::switch_banks( int initial )
cout << "remote id " << route->remote_control_id() << " connecting " << route->name() << " to " << strip.name() << " with port " << port_for_id(i) << endl;
#endif
route_table[i] = route;
- RouteSignal * rs = new RouteSignal( *route, *this, strip, port_for_id(i) );
+ RouteSignal * rs = new RouteSignal (route, *this, strip, port_for_id(i) );
route_signals.push_back( rs );
// update strip from route
rs->notify_all();
@@ -658,7 +658,8 @@ void MackieControlProtocol::create_ports()
shared_ptr<Route> MackieControlProtocol::master_route()
{
- return session->master_out ();
+ boost::shared_ptr<IO> mo = session->master_out ();
+ return boost::dynamic_pointer_cast<Route>(mo);
}
Strip & MackieControlProtocol::master_strip()
@@ -962,7 +963,7 @@ void MackieControlProtocol::notify_solo_changed( RouteSignal * route_signal )
try
{
Button & button = route_signal->strip().solo();
- route_signal->port().write( builder.build_led( button, route_signal->route().soloed() ) );
+ route_signal->port().write( builder.build_led( button, route_signal->route()->soloed() ) );
}
catch( exception & e )
{
@@ -975,7 +976,7 @@ void MackieControlProtocol::notify_mute_changed( RouteSignal * route_signal )
try
{
Button & button = route_signal->strip().mute();
- route_signal->port().write( builder.build_led( button, route_signal->route().muted() ) );
+ route_signal->port().write( builder.build_led( button, route_signal->route()->muted() ) );
}
catch( exception & e )
{
@@ -988,7 +989,7 @@ void MackieControlProtocol::notify_record_enable_changed( RouteSignal * route_si
try
{
Button & button = route_signal->strip().recenable();
- route_signal->port().write( builder.build_led( button, route_signal->route().record_enabled() ) );
+ route_signal->port().write( builder.build_led( button, route_signal->route()->record_enabled() ) );
}
catch( exception & e )
{
@@ -1018,7 +1019,7 @@ void MackieControlProtocol::notify_gain_changed( RouteSignal * route_signal, boo
Fader & fader = route_signal->strip().gain();
if ( !fader.in_use() )
{
- float gain_value = route_signal->route().gain_control().get_value();
+ float gain_value = route_signal->route()->gain_control().get_value();
// check that something has actually changed
if ( force_update || gain_value != route_signal->last_gain_written() )
{
@@ -1041,7 +1042,7 @@ void MackieControlProtocol::notify_name_changed( void *, RouteSignal * route_sig
if ( !strip.is_master() )
{
string line1;
- string fullname = route_signal->route().name();
+ string fullname = route_signal->route()->name();
if ( fullname.length() <= 6 )
{
@@ -1068,11 +1069,11 @@ void MackieControlProtocol::notify_panner_changed( RouteSignal * route_signal, b
try
{
Pot & pot = route_signal->strip().vpot();
- const Panner & panner = route_signal->route().panner();
+ const Panner & panner = route_signal->route()->panner();
if ( panner.size() == 1 || ( panner.size() == 2 && panner.linked() ) )
{
float pos;
- route_signal->route().panner()[0]->get_effective_position( pos );
+ route_signal->route()->panner()[0]->get_effective_position( pos );
// cache the MidiByteArray here, because the mackie led control is much lower
// resolution than the panner control. So we save lots of byte
@@ -1099,13 +1100,13 @@ void MackieControlProtocol::notify_panner_changed( RouteSignal * route_signal, b
// TODO handle plugin automation polling
void MackieControlProtocol::update_automation( RouteSignal & rs )
{
- ARDOUR::AutoState gain_state = rs.route().gain_automation_state();
+ ARDOUR::AutoState gain_state = rs.route()->gain_automation_state();
if ( gain_state == Touch || gain_state == Play )
{
notify_gain_changed( &rs, false );
}
- ARDOUR::AutoState panner_state = rs.route().panner().automation_state();
+ ARDOUR::AutoState panner_state = rs.route()->panner().automation_state();
if ( panner_state == Touch || panner_state == Play )
{
notify_panner_changed( &rs, false );