summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-02-23 15:50:59 +0100
committerRobin Gareus <robin@gareus.org>2020-02-23 16:21:55 +0100
commit224be912112941199fc8c2ff79518d2d2a2262d0 (patch)
treef169b4066575b73ee5ea7b7a3f175872b35433ce /libs
parent54c4d3adc5f0cea54457df04af44397825fc2679 (diff)
Fix websockets surface crash when panner is not available
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaces/websockets/feedback.cc6
-rw-r--r--libs/surfaces/websockets/strips.cc8
2 files changed, 10 insertions, 4 deletions
diff --git a/libs/surfaces/websockets/feedback.cc b/libs/surfaces/websockets/feedback.cc
index 290f3f9268..2d09b93513 100644
--- a/libs/surfaces/websockets/feedback.cc
+++ b/libs/surfaces/websockets/feedback.cc
@@ -165,8 +165,10 @@ ArdourFeedback::observe_strips ()
strip->gain_control ()->Changed.connect (_signal_connections, MISSING_INVALIDATOR,
boost::bind<void> (StripGainObserver (), this, strip_n), event_loop ());
- strip->pan_azimuth_control ()->Changed.connect (_signal_connections, MISSING_INVALIDATOR,
- boost::bind<void> (StripPanObserver (), this, strip_n), event_loop ());
+ if (strip->pan_azimuth_control ()) {
+ strip->pan_azimuth_control ()->Changed.connect (_signal_connections, MISSING_INVALIDATOR,
+ boost::bind<void> (StripPanObserver (), this, strip_n), event_loop ());
+ }
strip->mute_control ()->Changed.connect (_signal_connections, MISSING_INVALIDATOR,
boost::bind<void> (StripMuteObserver (), this, strip_n), event_loop ());
diff --git a/libs/surfaces/websockets/strips.cc b/libs/surfaces/websockets/strips.cc
index bde8978967..80ce78ac14 100644
--- a/libs/surfaces/websockets/strips.cc
+++ b/libs/surfaces/websockets/strips.cc
@@ -92,8 +92,12 @@ ArdourStrips::strip_pan (uint32_t strip_n) const
void
ArdourStrips::set_strip_pan (uint32_t strip_n, double value)
{
- value = (value + 1.0) / 2.0;
- nth_strip (strip_n)->pan_azimuth_control ()->set_value (value, PBD::Controllable::NoGroup);
+ boost::shared_ptr<AutomationControl> ac = nth_strip (strip_n)->pan_azimuth_control ();
+ if (!ac) {
+ return;
+ }
+ value = (value + 1.0) / 2.0;
+ ac->set_value (value, PBD::Controllable::NoGroup);
}
bool