summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-05-07 18:00:03 +0000
committerDavid Robillard <d@drobilla.net>2009-05-07 18:00:03 +0000
commitf4c01b2f28fd0b772ea03aec3dffa40a466416cb (patch)
tree2f9189a003dd76ee1991ace7b95f14a5a2834fd7 /libs
parent2c231282baa596219506c1ee4632708977cc0714 (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.cc24
-rw-r--r--libs/surfaces/mackie/route_signal.cc10
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) {