Start work on Group Cue children loading

This commit is contained in:
2019-04-19 13:51:07 -05:00
parent 3a0a2531bb
commit bceaf80be3
11 changed files with 198 additions and 55 deletions
@@ -52,6 +52,19 @@ namespace qController
set;
}
}
public class ChildrenEventArgs : EventArgs
{
public string cue_id
{
get;
set;
}
public List<QCue> children
{
get;
set;
}
}
public class QParser
{
public QParser()
@@ -65,6 +78,8 @@ namespace qController
public delegate void CueInfoUpdatedHandler(object source, CueEventArgs args);
public delegate void PlaybackPositionUpdatedHandler(object source, PlaybackPositionArgs args);
public delegate void ConnectionStatusHandler(object source, ConnectEventArgs args);
public delegate void ChildrenUpdateHandler(object source, ChildrenEventArgs args);
public event ChildrenUpdateHandler ChildrenUpdated;
public event ConnectionStatusHandler ConnectionStatusChanged;
public event SelectedCueUpdatedHandler SelectedCueUpdated;
public event AudioLevelsUpdatedHandler AudioLevelsUpdated;
@@ -94,6 +109,8 @@ namespace qController
Console.WriteLine("Heartbeat Received");
else if (msg.Address.Contains("connect"))
ParseConnectInfo(msg);
else if (msg.Address.Contains("children"))
ParseChildrenInfo(msg);
else
{
Console.WriteLine("Unknown message type");
@@ -103,10 +120,9 @@ namespace qController
Console.WriteLine(item);
}
}
}
}
public void ParseConnectInfo(OscMessage msg)
{
JToken connectStatus = OSC2JSON(msg);
@@ -130,7 +146,6 @@ namespace qController
public void ParseSelectedCueInfo(OscMessage msg){
JToken selectedCue = OSC2JSON(msg);
Console.WriteLine("Selected Cue Updated");
QCue cue = JsonConvert.DeserializeObject<QCue>(selectedCue.ToString());
OnSelectedCueUpdated(cue);
}
@@ -154,6 +169,17 @@ namespace qController
}
}
public void ParseChildrenInfo(OscMessage msg)
{
if (msg.Arguments.Count > 0)
{
string cue_id = msg.Address.Split('/')[3];
JToken children_obj = OSC2JSON(msg);
List<QCue> children = JsonConvert.DeserializeObject<List<QCue>>(children_obj.ToString());
OnChildrenUpdated(cue_id, children);
}
}
public JToken OSC2JSON(OscMessage Msg){
JObject json = JObject.Parse(Msg.Arguments.ToArray()[0].ToString());
return json.GetValue("data");
@@ -191,5 +217,11 @@ namespace qController
if (ConnectionStatusChanged != null)
ConnectionStatusChanged(this, new ConnectEventArgs() { Status = status });
}
protected virtual void OnChildrenUpdated(string id, List<QCue> cues)
{
if (ChildrenUpdated != null)
ChildrenUpdated(this, new ChildrenEventArgs() { cue_id = id, children = cues });
}
}
}