This commit is contained in:
2019-07-17 13:57:15 -05:00
parent 4938a0a0b3
commit 0848336987
30 changed files with 64 additions and 120 deletions
@@ -1,6 +1,5 @@
//IP Address verification
//IMPLEMENT A ISREACHABLE METHOD TO BE ABLE TO DISPLAY ONLINE QINSTANCES
using System;
using System.Net;
namespace qController
@@ -1,12 +1,9 @@
//Class used to facilitate communication with a QInstance
//Listens for incoming messages via qReceiver (UDP) and tcpSender (TCP)
//WEIRD MESSAGE PARSING RULES NEED FIXED
using System;
using System.Linq;
using System.Threading;
using SharpOSC;
using Newtonsoft.Json;
namespace qController
{
public class QClient
@@ -3,10 +3,7 @@
//Also contains the local QWorkspace object which stores all the information that is used in displaying
//STILL NEED TO WORK ON PASSWORD PROTECTED WORKSPACES
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using Xamarin.Forms;
namespace qController
{
@@ -15,7 +12,7 @@ namespace qController
public QUpdater qUpdater;
public QClient qClient;
public QWorkSpace qWorkspace;
public QWorkspace qWorkspace;
public string playbackPosition;
public Stopwatch sw;
public QController(string address, int port)
@@ -23,19 +20,15 @@ namespace qController
qClient = new QClient(address, port);
qUpdater = new QUpdater(this);
//Connect();
//Connect();
//KickOff();
}
public void Connect(string workspace_id)
{
Console.WriteLine("QCONTROLLER CONNECT CALLED: " + workspace_id);
qWorkspace = new QWorkSpace();
qWorkspace = new QWorkspace();
qWorkspace.workspace_id = workspace_id;
qUpdater.Start();
qClient.sendStringUDP("/connect");
qClient.sendArgsUDP("/workspace/"+workspace_id+"/connect");
qClient.sendArgsUDP("/workspace/"+workspace_id+"/updates", 1);
qClient.sendAndReceiveString("/workspace/"+workspace_id+"/cueLists");
}
@@ -47,17 +40,19 @@ namespace qController
public void Disconnect()
{
qClient.sendStringUDP("/disconnect");
qClient.sendStringUDP("/workspace/"+qWorkspace.workspace_id+"/disconnect");
}
public void ConnectWithPass(string pass)
{
qClient.sendArgsUDP("/connect", pass);
qClient.sendArgsUDP("/workspace/" + qWorkspace.workspace_id + "/connect", pass);
}
public void Kill(){
qUpdater.Kill();
qClient.Close();
if (qUpdater != null)
qUpdater.Kill();
if (qClient != null)
qClient.Close();
}
}
}
@@ -1,11 +1,9 @@
//Currently unused would like to reimplement eventually
//Currently being done in qConnectionPage.xaml.cs Scan() method
using System;
using System.Collections.Generic;
using Zeroconf;
namespace qController
{
public class QFinder
@@ -1,5 +1,4 @@
using System;
using System;
using SharpOSC;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
@@ -18,7 +17,7 @@ namespace qController
public class WorkspaceEventArgs : EventArgs
{
public QWorkSpace UpdatedWorkspace
public QWorkspace UpdatedWorkspace
{
get;
set;
@@ -45,7 +44,7 @@ namespace qController
public class WorkspaceInfoArgs : EventArgs
{
public List<QInfo> WorkspaceInfo
public List<QWorkspaceInfo> WorkspaceInfo
{
get;
set;
@@ -155,7 +154,7 @@ namespace qController
public void ParseQInfo(OscMessage msg)
{
JToken qInfo = OSC2JSON(msg);
List<QInfo> qWorkspaceInfo = JsonConvert.DeserializeObject<List<QInfo>>(qInfo.ToString());
List<QWorkspaceInfo> qWorkspaceInfo = JsonConvert.DeserializeObject<List<QWorkspaceInfo>>(qInfo.ToString());
OnWorkspaceInfoReceived(qWorkspaceInfo);
}
@@ -163,7 +162,7 @@ namespace qController
{
if (msg.Arguments.Count > 0)
{
QWorkSpace workspace = JsonConvert.DeserializeObject<QWorkSpace>(msg.Arguments[0].ToString());
QWorkspace workspace = JsonConvert.DeserializeObject<QWorkspace>(msg.Arguments[0].ToString());
OnWorkspaceUpdated(workspace);
}
}
@@ -184,7 +183,7 @@ namespace qController
return json.GetValue("data");
}
protected virtual void OnWorkspaceUpdated(QWorkSpace workspace)
protected virtual void OnWorkspaceUpdated(QWorkspace workspace)
{
if (WorkspaceUpdated != null)
WorkspaceUpdated(this, new WorkspaceEventArgs() { UpdatedWorkspace = workspace });
@@ -221,7 +220,7 @@ namespace qController
if (WorkspaceDisconnect != null)
WorkspaceDisconnect(this, new EventArgs());
}
protected virtual void OnWorkspaceInfoReceived(List<QInfo> workspaces)
protected virtual void OnWorkspaceInfoReceived(List<QWorkspaceInfo> workspaces)
{
if (WorkspaceInfoReceived != null)
WorkspaceInfoReceived(this, new WorkspaceInfoArgs() { WorkspaceInfo = workspaces });
@@ -1,8 +1,5 @@
//Class used for receiving workspace update messages
using System;
using SharpOSC;
using System.Net;
using System.Threading;
namespace qController
@@ -1,9 +1,8 @@
//Class used for updating local "copy" of workspace info, cue-lists, cues, etc.
using System;
using System.Threading;
using Xamarin.Forms;
using SharpOSC;
namespace qController
{
public class QUpdater
@@ -43,7 +42,7 @@ namespace qController
if (args.Cue.type == "Group")
{
//Console.WriteLine("QUpdater/Updated cue was group cue, sending children request");
qController.qClient.sendStringUDP("/cue_id/" + args.Cue.uniqueID + "/children");
qController.qClient.sendStringUDP("/workspace/"+qController.qWorkspace.workspace_id+"/cue_id/" + args.Cue.uniqueID + "/children");
}
}