diff options
author | David Robillard <d@drobilla.net> | 2009-05-07 18:00:03 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-05-07 18:00:03 +0000 |
commit | f4c01b2f28fd0b772ea03aec3dffa40a466416cb (patch) | |
tree | 2f9189a003dd76ee1991ace7b95f14a5a2834fd7 /libs | |
parent | 2c231282baa596219506c1ee4632708977cc0714 (diff) |
Fix mackie control protocol compilation.
git-svn-id: svn://localhost/ardour2/branches/3.0@5062 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/surfaces/mackie/mackie_control_protocol.cc | 24 | ||||
-rw-r--r-- | libs/surfaces/mackie/route_signal.cc | 10 |
2 files changed, 19 insertions, 15 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc index c9f67a6bef..9df7b5260e 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.cc +++ b/libs/surfaces/mackie/mackie_control_protocol.cc @@ -909,14 +909,14 @@ void MackieControlProtocol::handle_control_event( SurfacePort & port, Control & case Control::type_pot: if ( control.group().is_strip() ) { - if ( route != 0 ) + if ( route != 0 && route->panner() ) { // pan for mono input routes, or stereo linked panners - if ( route->panner().npanners() == 1 || ( route->panner().npanners() == 2 && route->panner().linked() ) ) + if ( route->panner()->npanners() == 1 || ( route->panner()->npanners() == 2 && route->panner()->linked() ) ) { // assume pan for now float xpos; - route->panner().streampanner (0).get_effective_position (xpos); + route->panner()->streampanner (0).get_effective_position (xpos); // calculate new value, and trim xpos += state.delta * state.sign; @@ -925,7 +925,7 @@ void MackieControlProtocol::handle_control_event( SurfacePort & port, Control & else if ( xpos < 0.0 ) xpos = 0.0; - route->panner().streampanner (0).set_position( xpos ); + route->panner()->streampanner (0).set_position( xpos ); } } else @@ -1070,11 +1070,11 @@ void MackieControlProtocol::notify_panner_changed( RouteSignal * route_signal, b try { Pot & pot = route_signal->strip().vpot(); - const Panner & panner = route_signal->route()->panner(); - if ( panner.npanners() == 1 || ( panner.npanners() == 2 && panner.linked() ) ) + boost::shared_ptr<Panner> panner = route_signal->route()->panner(); + if ( panner && panner->npanners() == 1 || ( panner->npanners() == 2 && panner->linked() ) ) { float pos; - route_signal->route()->panner().streampanner(0).get_effective_position( pos ); + route_signal->route()->panner()->streampanner(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 @@ -1107,10 +1107,12 @@ void MackieControlProtocol::update_automation( RouteSignal & rs ) notify_gain_changed( &rs, false ); } - ARDOUR::AutoState panner_state = rs.route()->panner().automation_state(); - if ( panner_state == Touch || panner_state == Play ) - { - notify_panner_changed( &rs, false ); + if ( rs.route()->panner() ) { + ARDOUR::AutoState panner_state = rs.route()->panner()->automation_state(); + if ( panner_state == Touch || panner_state == Play ) + { + notify_panner_changed( &rs, false ); + } } _automation_last.start(); } diff --git a/libs/surfaces/mackie/route_signal.cc b/libs/surfaces/mackie/route_signal.cc index b2139e1cbe..d76a8c896b 100644 --- a/libs/surfaces/mackie/route_signal.cc +++ b/libs/surfaces/mackie/route_signal.cc @@ -44,10 +44,12 @@ void RouteSignal::connect() cins = _route->NameChanged.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_name_changed ), this ) ); - cins = _route->panner().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) ); - for ( unsigned int i = 0; i < _route->panner().npanners(); ++i ) { - cins = _route->panner().streampanner (i).Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) ); - } + if (_route->panner()) { + cins = _route->panner()->Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) ); + for ( unsigned int i = 0; i < _route->panner()->npanners(); ++i ) { + cins = _route->panner()->streampanner (i).Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) ); + } + } boost::shared_ptr<Track> trk = boost::dynamic_pointer_cast<ARDOUR::Track>(_route); if (trk) { |