From 2393e8b45965b1ed31b5566c8b6bd06e43a419e7 Mon Sep 17 00:00:00 2001 From: sparks-alec Date: Sun, 8 Jan 2023 22:11:44 -0500 Subject: [PATCH] bugfix make sure cue exists before modifying wait data --- plugins/qlab/main.js | 56 ++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/plugins/qlab/main.js b/plugins/qlab/main.js index e369756..538cbb8 100644 --- a/plugins/qlab/main.js +++ b/plugins/qlab/main.js @@ -213,45 +213,55 @@ exports.data = function data(_device, oscData) { if (workspace) { const cue = workspace.cues[oscArgs.address.substring(55, 91)]; - cue.preWaitElapsed = oscArgs.data; - lastElapsedUpdate = Date.now(); + if (cue) { + cue.preWaitElapsed = oscArgs.data; + lastElapsedUpdate = Date.now(); - device.update('updateCueData', { - cue, - allCues: workspace.cues, - workspace, - }); + device.update('updateCueData', { + cue, + allCues: workspace.cues, + workspace, + }); + } } } } else if (match(oscAddressParts, ['reply', 'cue_id', '*', 'actionElapsed'])) { const oscArgs = JSON.parse(oscData.args[0]); if (oscArgs.status !== 'error') { const workspace = device.data.workspaces[oscArgs.workspace_id]; - const cue = workspace.cues[oscArgs.address.substring(55, 91)]; + if (workspace) { + const cue = workspace.cues[oscArgs.address.substring(55, 91)]; - cue.actionElapsed = oscArgs.data; - lastElapsedUpdate = Date.now(); + if (cue) { + cue.actionElapsed = oscArgs.data; + lastElapsedUpdate = Date.now(); - device.update('updateCueData', { - cue, - allCues: workspace.cues, - workspace, - }); + device.update('updateCueData', { + cue, + allCues: workspace.cues, + workspace, + }); + } + } } } else if (match(oscAddressParts, ['reply', 'cue_id', '*', 'postWaitElapsed'])) { const oscArgs = JSON.parse(oscData.args[0]); if (oscArgs.status !== 'error') { const workspace = device.data.workspaces[oscArgs.workspace_id]; - const cue = workspace.cues[oscArgs.address.substring(55, 91)]; + if (workspace) { + const cue = workspace.cues[oscArgs.address.substring(55, 91)]; - cue.postWaitElapsed = oscArgs.data; - lastElapsedUpdate = Date.now(); + if (cue) { + cue.postWaitElapsed = oscArgs.data; + lastElapsedUpdate = Date.now(); - device.update('updateCueData', { - cue, - allCues: workspace.cues, - workspace, - }); + device.update('updateCueData', { + cue, + allCues: workspace.cues, + workspace, + }); + } + } } } else if (match(oscAddressParts, ['update', 'workspace', '*', 'cue_id', '*'])) { const workspace = device.data.workspaces[oscAddressParts[2]];