From dc864f2341d0625ee320fb0f2100e26649dbaeb7 Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Tue, 8 Nov 2022 09:47:52 -0600 Subject: [PATCH] QLab 5 connection changes --- .../Classes/Communication/QUpdater.cs | 8 ++++++- .../Classes/QItems/QWorkSpace.cs | 6 ++++++ .../Pages/ControlPage.xaml.cs | 21 ++++++++++++++----- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/qController.Standard/Classes/Communication/QUpdater.cs b/qController.Standard/Classes/Communication/QUpdater.cs index d79880b..15a3183 100644 --- a/qController.Standard/Classes/Communication/QUpdater.cs +++ b/qController.Standard/Classes/Communication/QUpdater.cs @@ -21,8 +21,14 @@ namespace qController.Communication private void OnConnectionStatusChanged(object source, ConnectEventArgs args) { Log.Debug("QUPDATER - Connection Status Changed: " + args.Status); - if (args.Status == "ok") + + if (args.Status.Contains("ok")) { + //new sort of connect format for QLab 5 ok:view|control|edit is connection good + if(args.Status.Contains(":") && !args.Status.Contains("view")) + { + return; + } qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/updates", 1); qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/cueLists"); } diff --git a/qController.Standard/Classes/QItems/QWorkSpace.cs b/qController.Standard/Classes/QItems/QWorkSpace.cs index 9504bfb..0124b92 100644 --- a/qController.Standard/Classes/QItems/QWorkSpace.cs +++ b/qController.Standard/Classes/QItems/QWorkSpace.cs @@ -94,6 +94,12 @@ namespace qController.QItems public bool CheckPopulated() { + if(data == null) + { + IsPopulated = false; + return false; + } + for (int i = 0; i < data.Count; i++) { for (int j = 0; j < data[i].cues.Count; j++) diff --git a/qController.Standard/Pages/ControlPage.xaml.cs b/qController.Standard/Pages/ControlPage.xaml.cs index caabf9b..ca2cd30 100644 --- a/qController.Standard/Pages/ControlPage.xaml.cs +++ b/qController.Standard/Pages/ControlPage.xaml.cs @@ -67,13 +67,18 @@ namespace qController private void OnConnectionStatusChanged(object source, ConnectEventArgs args) { Log.Debug($"CONTROLPAGE - Connection Status Changed: {args.WorkspaceId} : {args.Status}"); - if (args.Status.Equals("ok")) + if (args.Status.Contains("ok")) { + if(args.Status.Contains(":") && !args.Status.Contains("view")) + { + workspacePrompt.promptWorkspacePasscode(args.WorkspaceId); + return; + } Device.BeginInvokeOnMainThread(() => { FinishUI(); }); } - else if (args.Status.Equals("badpass")) + else if (args.Status.Contains("badpass")) { workspacePrompt.promptWorkspacePasscode(args.WorkspaceId); } @@ -252,6 +257,11 @@ namespace qController public void WorkspaceUpdated(object sender, WorkspaceEventArgs e) { + if(e.UpdatedWorkspace.data == null) + { + Log.Debug("[ControlPage] Workspace Update contains null data."); + return; + } if(e.UpdatedWorkspace.data.Count > 0) { qController.qWorkspace = e.UpdatedWorkspace; @@ -313,10 +323,11 @@ namespace qController Device.BeginInvokeOnMainThread(() => { Log.Debug("CONTROLPAGE - Refreshing Currently Displayed Cue"); - if (args.Cue.levels != null) + if (args.Cue.levels != null) { + Log.Debug("before show levels button and cue.levels isnt null"); showLevelsButton.IsVisible = true; - else - { + Log.Debug("after show levels button and cue.levels isnt null"); + } else { showLevelsButton.IsVisible = false; qLevelsCell.IsVisible = false; }