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 //TODO: STILL NEED TO WORK ON PASSWORD PROTECTED WORKSPACES
using Serilog; using Serilog;
using qController.QItems; using qController.QItems;
using System;
namespace qController.Communication namespace qController.Communication
{ {
@@ -23,33 +24,31 @@ namespace qController.Communication
this.ipAddress = address; this.ipAddress = address;
qClient = new QClient(ipAddress, port); qClient = new QClient(ipAddress, port);
qUpdater = new QUpdater(this); 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() public void KickOff()
{ {
Log.Debug($"QCONTROLLER - Searching for workspaces on: {ipAddress}"); Log.Debug($"QCONTROLLER - Searching for workspaces on: {ipAddress}");
@@ -65,7 +65,6 @@ namespace qController.Communication
if (msg.Arguments.Count > 0) if (msg.Arguments.Count > 0)
{ {
JToken connectStatus = OSC2JSON(msg); JToken connectStatus = OSC2JSON(msg);
;
OnConnectionStatusChanged(connectStatus.ToString(), msg.Address.Split('/')[3]); OnConnectionStatusChanged(connectStatus.ToString(), msg.Address.Split('/')[3]);
} }
} }
@@ -22,7 +22,7 @@ namespace qController.Communication
{ {
Log.Debug("QUPDATER - Connection Status Changed: " + args.Status); Log.Debug("QUPDATER - Connection Status Changed: " + args.Status);
if (args.Status.Contains("ok")) if (args.Status.Contains("ok"))
{ {
//new sort of connect format for QLab 5 ok:view|control|edit is connection good //new sort of connect format for QLab 5 ok:view|control|edit is connection good
@@ -30,7 +30,14 @@ namespace qController.Communication
{ {
return; 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"); qController.qClient.sendTCP("/workspace/" + qController.qWorkspace.workspace_id + "/cueLists");
} }
} }
@@ -38,11 +38,11 @@ namespace qController.Dialogs
if (!workspace.hasPasscode) if (!workspace.hasPasscode)
{ {
OnWorkspaceSelected(new QWorkspace(workspace.uniqueID)); OnWorkspaceSelected(new QWorkspace(workspace));
} }
else 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 UserDialogs.Instance.Prompt(new PromptConfig
{ {
@@ -64,7 +64,7 @@ namespace qController.Dialogs
{ {
if (resp.Ok) if (resp.Ok)
{ {
OnWorkspaceSelected(new QWorkspace(workspace_id,resp.Value)); OnWorkspaceSelected(new QWorkspace(workspaceInfo,resp.Value));
} }
else else
{ {
+11 -6
View File
@@ -11,7 +11,7 @@ namespace qController.QItems
public string workspace_id { get; set; } public string workspace_id { get; set; }
public string address { get; set; } public string address { get; set; }
public bool IsPopulated { get; set; } public bool IsPopulated { get; set; }
public string version { get; set; }
public string passcode { get; set; } public string passcode { get; set; }
//ONLY FOR PASSING A WORKSPACE LOAD ERROR //ONLY FOR PASSING A WORKSPACE LOAD ERROR
@@ -20,12 +20,17 @@ namespace qController.QItems
workspace_id = id; workspace_id = id;
} }
public QWorkspace(string id, string passcode) public QWorkspace(QWorkspaceInfo workspaceInfo)
{ {
workspace_id = id; workspace_id = workspaceInfo.uniqueID;
this.passcode = passcode; version = workspaceInfo.version;
}
public QWorkspace(QWorkspaceInfo workspaceInfo, string passcode)
{
workspace_id = workspaceInfo.uniqueID;
version = workspaceInfo.version;
this.passcode = passcode;
} }
public QWorkspace() public QWorkspace()
{ {
+4 -5
View File
@@ -63,14 +63,14 @@ namespace qController
Log.Debug($"CONTROLPAGE - Connection Status Changed: {args.WorkspaceId} : {args.Status}"); Log.Debug($"CONTROLPAGE - Connection Status Changed: {args.WorkspaceId} : {args.Status}");
if (args.Status.Contains("ok")) { if (args.Status.Contains("ok")) {
if(args.Status.Contains(":") && !args.Status.Contains("view")) { if(args.Status.Contains(":") && !args.Status.Contains("view")) {
workspacePrompt.promptWorkspacePasscode(args.WorkspaceId); workspacePrompt.promptWorkspacePasscode(new QWorkspaceInfo { uniqueID = args.WorkspaceId, version = qController.qWorkspace.version });
return; return;
} }
Device.BeginInvokeOnMainThread(() => { Device.BeginInvokeOnMainThread(() => {
FinishUI(); FinishUI();
}); });
} else if (args.Status.Contains("badpass")) { } 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) { } else if (args.WorkspaceInfo.Count == 1) {
Log.Debug("CONTROLPAGE - ONLY ONE WORKSPACE ON SELECTED COMPUTER"); Log.Debug("CONTROLPAGE - ONLY ONE WORKSPACE ON SELECTED COMPUTER");
if (!args.WorkspaceInfo[0].hasPasscode) { if (!args.WorkspaceInfo[0].hasPasscode) {
qController.Connect(args.WorkspaceInfo[0].uniqueID); qController.Connect(args.WorkspaceInfo[0]);
} else { } else {
workspacePrompt.promptWorkspacePasscode(args.WorkspaceInfo[0].uniqueID); workspacePrompt.promptWorkspacePasscode(args.WorkspaceInfo[0]);
} }
} else { } else {
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?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> <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.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />