From 80dc3a38e00d751ff7203d91b1276109545e63bf Mon Sep 17 00:00:00 2001 From: Luciano Iam Date: Tue, 21 Apr 2020 16:20:16 +0200 Subject: [PATCH] WebSockets: let clients know if a strip is a VCA This allows to hide the panner for example --- libs/surfaces/websockets/dispatcher.cc | 13 +++++++++++-- share/web_surfaces/builtin/mixer-demo/js/main.js | 16 +++++++++------- share/web_surfaces/shared/callback.js | 2 +- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/libs/surfaces/websockets/dispatcher.cc b/libs/surfaces/websockets/dispatcher.cc index d2b99be1a0..11623d30bd 100644 --- a/libs/surfaces/websockets/dispatcher.cc +++ b/libs/surfaces/websockets/dispatcher.cc @@ -63,12 +63,21 @@ WebsocketsDispatcher::update_all_nodes (Client client) for (uint32_t strip_n = 0; strip_n < strips ().strip_count (); ++strip_n) { boost::shared_ptr strip = strips ().nth_strip (strip_n); - update (client, Node::strip_description, strip_n, strip->name ()); + bool is_vca = strip->presentation_info ().flags () & ARDOUR::PresentationInfo::VCA; + + AddressVector strip_addr = AddressVector (); + strip_addr.push_back (strip_n); + ValueVector strip_desc = ValueVector (); + strip_desc.push_back (strip->name ()); + strip_desc.push_back (is_vca); + + update (client, Node::strip_description, strip_addr, strip_desc); + update (client, Node::strip_gain, strip_n, strips ().strip_gain (strip_n)); update (client, Node::strip_mute, strip_n, strips ().strip_mute (strip_n)); // Pan and plugins not available in VCAs - if ((strip->presentation_info ().flags () & ARDOUR::PresentationInfo::VCA)) { + if (is_vca) { continue; } diff --git a/share/web_surfaces/builtin/mixer-demo/js/main.js b/share/web_surfaces/builtin/mixer-demo/js/main.js index 209ddf1bab..f9e2255712 100644 --- a/share/web_surfaces/builtin/mixer-demo/js/main.js +++ b/share/web_surfaces/builtin/mixer-demo/js/main.js @@ -52,7 +52,7 @@ import { Switch, DiscreteSlider, ContinuousSlider, LogarithmicSlider, ardour.connect(); } - function createStrip (stripId, name) { + function createStrip (stripId, name, isVca) { const domId = `strip-${stripId}`; if (document.getElementById(domId) != null) { return; @@ -75,12 +75,14 @@ import { Switch, DiscreteSlider, ContinuousSlider, LogarithmicSlider, gain.appendTo(holder); connectWidget(gain, ANode.STRIP_GAIN, stripId); - // pan - holder = createElem(`
`, div); - createElem(``, holder); - const pan = new StripPanSlider(); - pan.appendTo(holder); - connectWidget(pan, ANode.STRIP_PAN, stripId); + if (!isVca) { + // pan + holder = createElem(`
`, div); + createElem(``, holder); + const pan = new StripPanSlider(); + pan.appendTo(holder); + connectWidget(pan, ANode.STRIP_PAN, stripId); + } } function createStripPlugin (stripId, pluginId, name) { diff --git a/share/web_surfaces/shared/callback.js b/share/web_surfaces/shared/callback.js index b50a70878f..0a8159b50e 100644 --- a/share/web_surfaces/shared/callback.js +++ b/share/web_surfaces/shared/callback.js @@ -35,7 +35,7 @@ onRecordState (value) {} // Strips - onStripDescription (stripId, name) {} + onStripDescription (stripId, name, isVca) {} onStripMeter (stripId, db) {} onStripGain (stripId, db) {} onStripPan (stripId, value) {}