diff --git a/plugins/qlab/cuelist.ejs b/plugins/qlab/cuelist.ejs
index 4c85c70..d345be0 100644
--- a/plugins/qlab/cuelist.ejs
+++ b/plugins/qlab/cuelist.ejs
@@ -1,4 +1,4 @@
-
<%= cueList.displayName %>
+<%= workspace.displayName %> — <%= cueList.displayName %>
diff --git a/plugins/qlab/main.js b/plugins/qlab/main.js
index e0429b9..8009d8b 100644
--- a/plugins/qlab/main.js
+++ b/plugins/qlab/main.js
@@ -37,9 +37,10 @@ exports.data = function (device, oscData) {
}else if(match(osc, ["reply", "workspaces"])){
let json = JSON.parse(oscData.args[0]);
- json.data.forEach(wksp => {
- device.data.workspaces = {};
+ device.data.workspaces = {};
+ json.data.forEach(wksp => {
+
device.data.workspaces[wksp.uniqueID] = {
uniqueID: wksp.uniqueID,
displayName: wksp.displayName,
@@ -51,6 +52,8 @@ exports.data = function (device, oscData) {
});
+ console.log(device.data.workspaces);
+
}else if(match(osc, ["reply", "workspace", "*", "connect"])){
@@ -66,6 +69,7 @@ exports.data = function (device, oscData) {
this.deviceInfoUpdate(device, 'status', 'ok');
+
let workspace = device.data.workspaces[osc[2]];
let json = JSON.parse(oscData.args[0]);
@@ -78,7 +82,6 @@ exports.data = function (device, oscData) {
addChildrenToWorkspace(workspace, ql);
});
- console.log("total device draw 2");
device.draw();
@@ -206,18 +209,21 @@ exports.data = function (device, oscData) {
}else if(match(osc, ["update", "workspace", "*", "cue_id", "*"])){
let workspace = device.data.workspaces[osc[2]];
- let cueLists = Object.keys(workspace.cueLists);
- let cue_id = osc[4];
+
+ if(workspace){
+ let cueLists = Object.keys(workspace.cueLists);
+ let cue_id = osc[4];
+
+ if(cue_id!="[root group of cue lists"){
+ if(cueLists.includes(cue_id)){
+ device.send(`/workspace/${workspace.uniqueID}/cue_id/${cue_id}/children`);
+ }
+
+ device.send(`/workspace/${osc[2]}/cue_id/${cue_id}/valuesForKeys`, [
+ {type: 's', value: valuesForKeysString}
+ ]);
- if(cue_id!="[root group of cue lists"){
- if(cueLists.includes(cue_id)){
- device.send(`/workspace/${workspace.uniqueID}/cue_id/${cue_id}/children`);
}
-
- device.send(`/workspace/${osc[2]}/cue_id/${cue_id}/valuesForKeys`, [
- {type: 's', value: valuesForKeysString}
- ]);
-
}
@@ -227,21 +233,36 @@ exports.data = function (device, oscData) {
}else if(match(osc, ["update", "workspace", "*", "dashboard"])){
- // nothing here yet
+ //this workspace might be new, let's check
+
+ if(device.data.workspaces[osc[2]]){
+
+ }else{
+ console.log("new workspace!");
+ device.send('/workspaces');
+ }
}else if(match(osc, ["update", "workspace", "*", "cueList", "*", "playbackPosition"])){
let workspace = device.data.workspaces[osc[2]];
- let cue = workspace.cues[oscData.args[0]];
- workspace.playbackPosition = oscData.args[0] ? cue.uniqueID : "";
- if(cue){
- device.update("updatePlaybackPosition", {cue: cue});
+ if(workspace){
+ let cue = workspace.cues[oscData.args[0]];
+
+ if(cue){
+ workspace.playbackPosition = oscData.args[0] ? cue.uniqueID : "";
+ device.update("updatePlaybackPosition", {cue: cue});
+ }
}
+ }else if(match(osc, ["update", "workspace", "*", "disconnect"])){
+
+ delete device.data.workspaces[osc[2]];
+ device.draw();
+
}else{
- console.log(address)
+ //console.log(address)
}
@@ -262,7 +283,7 @@ exports.update = function(device, doc, updateType, data){
if($elem){
if(data.cue.type=="Cue List"){
- $elem.outerHTML = ''+data.cue.name+'
';
+ $elem.outerHTML = ''+data.workspace.displayName+' — '+data.cue.name+'
';
}else if(data.cue.type=="Cart"){
$elem.outerHTML = cartTemplate({tileTemplate: tileTemplate, cueList: data.cue, allCues: data.workspace.cues});