summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuciano Iam <lucianito@gmail.com>2020-04-21 16:20:16 +0200
committerLuciano Iam <lucianito@gmail.com>2020-04-21 16:20:24 +0200
commit80dc3a38e00d751ff7203d91b1276109545e63bf (patch)
treeee54f09c6b9f4d7d29af08ba4dfbf4b3f3880261
parent68463cb591618a2d4c8087d21b64c9c3314ae985 (diff)
WebSockets: let clients know if a strip is a VCA
This allows to hide the panner for example
-rw-r--r--libs/surfaces/websockets/dispatcher.cc13
-rw-r--r--share/web_surfaces/builtin/mixer-demo/js/main.js16
-rw-r--r--share/web_surfaces/shared/callback.js2
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<Stripable> 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 class="strip-slider"></div>`, div);
- createElem(`<label>Pan</label>`, holder);
- const pan = new StripPanSlider();
- pan.appendTo(holder);
- connectWidget(pan, ANode.STRIP_PAN, stripId);
+ if (!isVca) {
+ // pan
+ holder = createElem(`<div class="strip-slider"></div>`, div);
+ createElem(`<label>Pan</label>`, 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) {}