diff --git a/qController.Standard/Classes/Communication/QClient.cs b/qController.Standard/Classes/Communication/QClient.cs index 81f3f61..346fee9 100644 --- a/qController.Standard/Classes/Communication/QClient.cs +++ b/qController.Standard/Classes/Communication/QClient.cs @@ -40,8 +40,13 @@ namespace qController //try to find a better filtering process if (!args.Message.Address.Contains("update")) qParser.ParseMessage(args.Message); - else if (args.Message.Address.Contains("playbackPosition") || args.Message.Address.Contains("cue_id") || args.Message.Address.Contains("cueList")) + else if (args.Message.Address.Contains("playbackPosition") || args.Message.Address.Contains("cueList") || args.Message.Address.Contains("dashboard")) qParser.ParseMessage(args.Message); + else if (args.Message.Address.Contains("cue_id")) + { + var parts = args.Message.Address.Split('/'); + UpdateSpecificCue(parts[3], parts[5]); + } else ProcessUpdate(args.Message); } diff --git a/qController.Standard/Classes/Communication/QController.cs b/qController.Standard/Classes/Communication/QController.cs index f511723..7a9946d 100644 --- a/qController.Standard/Classes/Communication/QController.cs +++ b/qController.Standard/Classes/Communication/QController.cs @@ -34,7 +34,7 @@ namespace qController Console.WriteLine("QCONTROLLER CONNECT CALLED: " + workspace_id); qWorkspace = new QWorkSpace(); qWorkspace.workspace_id = workspace_id; - //qClient.sendStringUDP("/connect"); + qClient.sendStringUDP("/connect"); qClient.sendArgsUDP("/workspace/"+workspace_id+"/updates", 1); qClient.sendAndReceiveString("/workspace/"+workspace_id+"/cueLists"); } diff --git a/qController.Standard/Classes/Communication/QUpdater.cs b/qController.Standard/Classes/Communication/QUpdater.cs index d3722fa..726eaf0 100644 --- a/qController.Standard/Classes/Communication/QUpdater.cs +++ b/qController.Standard/Classes/Communication/QUpdater.cs @@ -1,5 +1,4 @@ //Class used for updating local "copy" of workspace info, cue-lists, cues, etc. -//CLEAN UP WORKSPACE LOADING STUFF STILL SENDING INDIVIDUAL REQUESTS FOR GROUP CUES? using System; using System.Threading; @@ -17,8 +16,6 @@ namespace qController { qController = controller; updateThread = new Thread(new ThreadStart(UpdateLoop)); - - qController.qClient.qParser.ChildrenUpdated += OnChildrenUpdated; qController.qClient.qParser.CueInfoUpdated += OnCueUpdateReceived; qController.qClient.qParser.WorkspaceUpdated += OnWorkspaceUpdated; qController.qClient.qParser.PlaybackPositionUpdated += OnPlaybackPositionUpdated; @@ -42,28 +39,11 @@ namespace qController public void OnCueUpdateReceived(object source, CueEventArgs args) { qController.qWorkspace.UpdateCue(args.Cue); - if (qController.playbackPosition == null) - { - qController.playbackPosition = args.Cue.uniqueID; - } - } - private void OnChildrenUpdated(object source, ChildrenEventArgs args) - { - qController.qWorkspace.UpdateChildren(args.cue_id, args.children); - Console.WriteLine("Populated: " + qController.qWorkspace.IsPopulated); - if (!qController.qWorkspace.IsPopulated) + if (args.Cue.type == "Group") { - Console.WriteLine("IS THIS BEING CALLED"); - QCue cue = qController.qWorkspace.GetEmptyGroup(); - if(cue != null) - { - qController.qClient.sendStringUDP("/cue_id/" + cue.uniqueID + "/children"); - } - } - else - { - qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id); + //Console.WriteLine("QUpdater/Updated cue was group cue, sending children request"); + qController.qClient.sendStringUDP("/cue_id/" + args.Cue.uniqueID + "/children"); } } @@ -80,8 +60,6 @@ namespace qController qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id); return; } - //qController.qClient.UpdateSelectedCue(); - } public void OnPlaybackPositionUpdated(object source, PlaybackPositionArgs args) diff --git a/qController.Standard/Classes/Cues/QWorkSpace.cs b/qController.Standard/Classes/Cues/QWorkSpace.cs index d639610..0d6ea4c 100644 --- a/qController.Standard/Classes/Cues/QWorkSpace.cs +++ b/qController.Standard/Classes/Cues/QWorkSpace.cs @@ -54,7 +54,6 @@ namespace qController if(data[i].cues[j].type == "Group") { data[i].cues[j].cues = children; - CheckPopulated(); return; } } diff --git a/qController.Standard/Pages/ControlPage.xaml.cs b/qController.Standard/Pages/ControlPage.xaml.cs index 77630aa..69c9403 100644 --- a/qController.Standard/Pages/ControlPage.xaml.cs +++ b/qController.Standard/Pages/ControlPage.xaml.cs @@ -250,6 +250,11 @@ namespace qController public void OnCueUpdateReceived(object sender, CueEventArgs args) { qController.qWorkspace.UpdateCue(args.Cue); + if (qController.playbackPosition == null) + { + qController.playbackPosition = args.Cue.uniqueID; + } + if (args.Cue.uniqueID == qController.playbackPosition) { Device.BeginInvokeOnMainThread(() => @@ -278,23 +283,11 @@ namespace qController { Console.WriteLine("Children Updated in ControlPage: " + args.cue_id); qController.qWorkspace.UpdateChildren(args.cue_id, args.children); - if (qController.qWorkspace.IsPopulated) + Device.BeginInvokeOnMainThread(() => { - Device.BeginInvokeOnMainThread(() => - { - if (App.MenuIsPresented) - { - App.rootPage.MenuPage.ChangeToWorkspace(qController.qWorkspace); - } - else - { - App.rootPage.MenuPage.ChangeToWorkspace(qController.qWorkspace); - - } - }); - qController.qClient.UpdateSelectedCue(qController.qWorkspace.workspace_id); - App.showToast("Workspace cues loaded..."); - } + App.rootPage.MenuPage.ChangeToControl(); + App.rootPage.MenuPage.ChangeToWorkspace(qController.qWorkspace); + }); } private void OnMenuItemSelected(object source, MenuEventArgs args) diff --git a/qController.Standard/Pages/MenuPage.xaml.cs b/qController.Standard/Pages/MenuPage.xaml.cs index 4403da4..90752ed 100644 --- a/qController.Standard/Pages/MenuPage.xaml.cs +++ b/qController.Standard/Pages/MenuPage.xaml.cs @@ -96,7 +96,6 @@ namespace qController var cue = cueList.cues[j]; AddSubCues(cue, 0); } - } }