* qfont.ttf:

* qfont.ttf:
* QIcon.cs: Add LIST and LEFT_DIR icons

* Info.plist:
* AndroidManifest.xml: Update Version Numbers

* App.xaml.cs:
* QCue.cs:
* MenuPage.xaml.cs:
* QCueList.cs:
* ControlPage.xaml.cs:
* QWorkSpace.cs:
* QCueListCell.cs:
* qConnectionPage.xaml.cs:
* QParser.cs:
* QUpdater.cs:
* QController.cs: Android v1.0.8 / iOS v2.0.8
This commit is contained in:
2019-07-20 20:10:21 -05:00
parent 407a759ee3
commit e97f9a7382
16 changed files with 279 additions and 149 deletions
@@ -14,10 +14,15 @@ namespace qController
public QClient qClient;
public QWorkspace qWorkspace;
public string playbackPosition;
public Stopwatch sw;
private string ipAddress;
private int port;
public QController(string address, int port)
{
qClient = new QClient(address, port);
this.port = port;
this.ipAddress = address;
qClient = new QClient(ipAddress, port);
qUpdater = new QUpdater(this);
}
@@ -25,8 +30,7 @@ namespace qController
public void Connect(string workspace_id)
{
Console.WriteLine("QCONTROLLER CONNECT CALLED: " + workspace_id);
qWorkspace = new QWorkspace();
qWorkspace.workspace_id = workspace_id;
qWorkspace = new QWorkspace(workspace_id);
qUpdater.Start();
qClient.sendArgsUDP("/workspace/"+workspace_id+"/connect");
qClient.sendArgsUDP("/workspace/"+workspace_id+"/updates", 1);
@@ -48,6 +52,16 @@ namespace qController
qClient.sendArgsUDP("/workspace/" + qWorkspace.workspace_id + "/connect", pass);
}
public void Resume()
{
//qClient = new QClient(ipAddress, port);
//qUpdater = new QUpdater(this);
if(qWorkspace != null)
{
Console.WriteLine("RESUMING " + qWorkspace.workspace_id);
}
}
public void Kill(){
if (qUpdater != null)
qUpdater.Kill();
@@ -80,6 +80,8 @@ namespace qController
public delegate void ChildrenUpdateHandler(object source, ChildrenEventArgs args);
public delegate void WorkspaceDisconnectHandler(object source, EventArgs args);
public delegate void WorkspaceInfoHandler(object source, WorkspaceInfoArgs args);
public delegate void WorkspaceLoadErrorHandler(object source, WorkspaceEventArgs args);
public event WorkspaceLoadErrorHandler WorkspaceLoadError;
public event WorkspaceInfoHandler WorkspaceInfoReceived;
public event WorkspaceDisconnectHandler WorkspaceDisconnect;
public event ChildrenUpdateHandler ChildrenUpdated;
@@ -162,8 +164,29 @@ namespace qController
{
if (msg.Arguments.Count > 0)
{
QWorkspace workspace = JsonConvert.DeserializeObject<QWorkspace>(msg.Arguments[0].ToString());
OnWorkspaceUpdated(workspace);
var parts = msg.Address.Split('/');
string id = parts[3];
if (msg.Arguments[0].ToString() != "")
{
try
{
Console.WriteLine(msg.Arguments.Count);
Console.WriteLine(msg.Arguments[0].ToString().Length);
QWorkspace workspace = JsonConvert.DeserializeObject<QWorkspace>(msg.Arguments[0].ToString());
OnWorkspaceUpdated(workspace);
}
catch (Exception ex)
{
OnWorkspaceLoadError(id);
}
}
else
{
OnWorkspaceLoadError(id);
}
}
}
@@ -225,6 +248,11 @@ namespace qController
if (WorkspaceInfoReceived != null)
WorkspaceInfoReceived(this, new WorkspaceInfoArgs() { WorkspaceInfo = workspaces });
}
protected virtual void OnWorkspaceLoadError(string id)
{
if (WorkspaceLoadError != null)
WorkspaceLoadError(this, new WorkspaceEventArgs { UpdatedWorkspace = new QWorkspace(id) });
}
}
}
@@ -18,6 +18,16 @@ namespace qController
qController.qClient.qParser.CueInfoUpdated += OnCueUpdateReceived;
qController.qClient.qParser.WorkspaceUpdated += OnWorkspaceUpdated;
qController.qClient.qParser.PlaybackPositionUpdated += OnPlaybackPositionUpdated;
qController.qClient.qParser.WorkspaceLoadError += OnWorkspaceLoadError;
}
private void OnWorkspaceLoadError(object source, WorkspaceEventArgs args)
{
Console.WriteLine("QUpdater: Loading cuelists has failed for some reason retrying");
qController.qClient.sendArgsUDP("/workspace/" + args.UpdatedWorkspace.workspace_id + "/connect");
qController.qClient.sendArgsUDP("/workspace/" + args.UpdatedWorkspace.workspace_id + "/updates", 1);
qController.qClient.sendAndReceiveString("/workspace/" + args.UpdatedWorkspace.workspace_id + "/cueLists");
}
@@ -25,7 +35,7 @@ namespace qController
updateThread.Start();
}
//Attemp at a "keep alive" message
//Attempt at a "keep alive" message
public void UpdateLoop()
{
active = true;
@@ -64,6 +74,7 @@ namespace qController
public void OnPlaybackPositionUpdated(object source, PlaybackPositionArgs args)
{
qController.playbackPosition = args.PlaybackPosition;
Console.WriteLine("ControlPage: Update Specific Cue Called because of Playback Position Updated");
qController.qClient.UpdateSpecificCue(qController.qWorkspace.workspace_id,args.PlaybackPosition);
}