add version check before updates subscription OSC

This commit is contained in:
2025-11-13 23:10:17 -06:00
parent 0a3f464d81
commit 31580d2d68
7 changed files with 53 additions and 44 deletions
@@ -4,6 +4,7 @@
//TODO: STILL NEED TO WORK ON PASSWORD PROTECTED WORKSPACES
using Serilog;
using qController.QItems;
using System;
namespace qController.Communication
{
@@ -23,33 +24,31 @@ namespace qController.Communication
this.ipAddress = address;
qClient = new QClient(ipAddress, port);
qUpdater = new QUpdater(this);
}
public void Connect(string workspace_id)
{
Log.Debug($"QCONTROLLER - Connect Called: {workspace_id}");
qWorkspace = new QWorkspace(workspace_id);
qClient.sendTCP("/workspace/"+workspace_id+"/connect");
}
public void Connect(string workspace_id, string passcode)
{
Log.Debug($"QCONTROLLER - Connect with Passcode Called: {workspace_id}:{passcode}");
qWorkspace = new QWorkspace(workspace_id);
qClient.sendTCP("/workspace/" + workspace_id + "/connect", passcode);
}
public void Connect(QWorkspace workspace)
{
if(workspace.passcode != null)
Connect(workspace.workspace_id, workspace.passcode);
else
Connect(workspace.workspace_id);
}
public void Connect(QWorkspaceInfo workspaceInfo)
{
Log.Debug($"QCONTROLLER - Connect Called: {workspaceInfo.uniqueID}");
Connect(new QWorkspace(workspaceInfo));
}
public void Connect(QWorkspace workspace)
{
Log.Debug($"QCONTROLLER - Connect Called: {workspace.workspace_id}");
qWorkspace = workspace;
if (qWorkspace.passcode != null)
{
Log.Debug($"QCONTROLLER - Connect with Passcode Called: {qWorkspace.workspace_id}:{qWorkspace.passcode}");
qClient.sendTCP("/workspace/" + qWorkspace.workspace_id + "/connect", qWorkspace.passcode);
}
else
{
Log.Debug($"QCONTROLLER - Connect Called: {qWorkspace.workspace_id}");
qClient.sendTCP("/workspace/" + qWorkspace.workspace_id + "/connect");
}
}
public void KickOff()
{
Log.Debug($"QCONTROLLER - Searching for workspaces on: {ipAddress}");
@@ -65,7 +65,6 @@ namespace qController.Communication
if (msg.Arguments.Count > 0)
{
JToken connectStatus = OSC2JSON(msg);
;
OnConnectionStatusChanged(connectStatus.ToString(), msg.Address.Split('/')[3]);
}
}
@@ -22,7 +22,7 @@ namespace qController.Communication
{
Log.Debug("QUPDATER - Connection Status Changed: " + args.Status);
if (args.Status.Contains("ok"))
{
//new sort of connect format for QLab 5 ok:view|control|edit is connection good
@@ -30,7 +30,14 @@ namespace qController.Communication
{
return;
}
qController.qClient.sendTCP("/updates", 1);
if (qController.qWorkspace.version.StartsWith("5"))
{
qController.qClient.sendTCP("/updates", 1);
}
else
{
qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/updates", 1);
}
qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/cueLists");
}
}
@@ -38,11 +38,11 @@ namespace qController.Dialogs
if (!workspace.hasPasscode)
{
OnWorkspaceSelected(new QWorkspace(workspace.uniqueID));
OnWorkspaceSelected(new QWorkspace(workspace));
}
else
{
promptWorkspacePasscode(workspace.uniqueID);
promptWorkspacePasscode(workspace);
}
}));
}
@@ -51,7 +51,7 @@ namespace qController.Dialogs
public void promptWorkspacePasscode(string workspace_id)
public void promptWorkspacePasscode(QWorkspaceInfo workspaceInfo)
{
UserDialogs.Instance.Prompt(new PromptConfig
{
@@ -64,7 +64,7 @@ namespace qController.Dialogs
{
if (resp.Ok)
{
OnWorkspaceSelected(new QWorkspace(workspace_id,resp.Value));
OnWorkspaceSelected(new QWorkspace(workspaceInfo,resp.Value));
}
else
{
+11 -6
View File
@@ -11,7 +11,7 @@ namespace qController.QItems
public string workspace_id { get; set; }
public string address { get; set; }
public bool IsPopulated { get; set; }
public string version { get; set; }
public string passcode { get; set; }
//ONLY FOR PASSING A WORKSPACE LOAD ERROR
@@ -20,12 +20,17 @@ namespace qController.QItems
workspace_id = id;
}
public QWorkspace(string id, string passcode)
{
workspace_id = id;
this.passcode = passcode;
public QWorkspace(QWorkspaceInfo workspaceInfo)
{
workspace_id = workspaceInfo.uniqueID;
version = workspaceInfo.version;
}
public QWorkspace(QWorkspaceInfo workspaceInfo, string passcode)
{
workspace_id = workspaceInfo.uniqueID;
version = workspaceInfo.version;
this.passcode = passcode;
}
public QWorkspace()
{
+4 -5
View File
@@ -63,14 +63,14 @@ namespace qController
Log.Debug($"CONTROLPAGE - Connection Status Changed: {args.WorkspaceId} : {args.Status}");
if (args.Status.Contains("ok")) {
if(args.Status.Contains(":") && !args.Status.Contains("view")) {
workspacePrompt.promptWorkspacePasscode(args.WorkspaceId);
workspacePrompt.promptWorkspacePasscode(new QWorkspaceInfo { uniqueID = args.WorkspaceId, version = qController.qWorkspace.version });
return;
}
Device.BeginInvokeOnMainThread(() => {
FinishUI();
});
} else if (args.Status.Contains("badpass")) {
workspacePrompt.promptWorkspacePasscode(args.WorkspaceId);
workspacePrompt.promptWorkspacePasscode(new QWorkspaceInfo { uniqueID = args.WorkspaceId, version = qController.qWorkspace.version });
}
}
@@ -82,10 +82,9 @@ namespace qController
} else if (args.WorkspaceInfo.Count == 1) {
Log.Debug("CONTROLPAGE - ONLY ONE WORKSPACE ON SELECTED COMPUTER");
if (!args.WorkspaceInfo[0].hasPasscode) {
qController.Connect(args.WorkspaceInfo[0].uniqueID);
qController.Connect(args.WorkspaceInfo[0]);
} else {
workspacePrompt.promptWorkspacePasscode(args.WorkspaceInfo[0].uniqueID);
workspacePrompt.promptWorkspacePasscode(args.WorkspaceInfo[0]);
}
} else {
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="39" android:versionName="1.7.1" package="com.jwetzell.qlabcontroller" android:installLocation="auto">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="40" android:versionName="1.7.2" package="com.jwetzell.qlabcontroller" android:installLocation="auto">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:supportsRtl="true" android:label="qControl"></application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />