Begin implementing "/update" responses from QLab

This commit is contained in:
2019-04-08 16:06:15 -05:00
parent 091ea32ccc
commit d2b295c328
11 changed files with 107 additions and 54 deletions
@@ -1,42 +1,39 @@
using System;
//this class is used for receiving workspace update messages
using System;
using SharpOSC;
using System.Net;
using System.Threading;
namespace qController
{
public class MessageEventArgs : EventArgs{
public OscMessage Message {
get;
set;
}
}
public class QReceiver
{
public delegate void UpdateMessageReceivedHandler(object source, MessageEventArgs args);
public event UpdateMessageReceivedHandler UpdateMessageReceived;
static Thread thread;
private QController owner;
static UDPListener udpListener;
public delegate void MessageReceivedHandler(object source, MessageEventArgs args);
public event MessageReceivedHandler MessageReceived;
public QReceiver(int port, QController ctrl)
public QReceiver(int port)
{
owner = ctrl;
HandleOscPacket callback = delegate (OscPacket packet)
{
var messageReceived = (OscMessage)packet;
if(messageReceived != null)
OnUpdateMessageReceived(messageReceived);
else
Console.WriteLine("Message came back null");
};
udpListener = new UDPListener(port);
thread = new Thread(new ThreadStart(ListenLoop));
thread.Start();
udpListener = new UDPListener(port, callback);
}
public void ListenLoop()
{
Console.WriteLine("Loop Started");
while (true)
/*while (true)
{
OscMessage messageReceived = null;
while(messageReceived == null)
@@ -44,23 +41,20 @@ namespace qController
messageReceived = (OscMessage)udpListener.Receive();
Thread.Sleep(1);
}
OnMessageReceived(messageReceived);
}
OnUpdateMessageReceived(messageReceived);
Console.WriteLine("Loop Ended");
}*/
}
public void Close(){
thread.Abort();
udpListener.Close();
}
protected virtual void OnMessageReceived(OscMessage msg){
Console.WriteLine("Message Received");
if (MessageReceived != null)
MessageReceived(this, new MessageEventArgs(){Message = msg});
protected virtual void OnUpdateMessageReceived(OscMessage msg)
{
if (UpdateMessageReceived != null)
UpdateMessageReceived(this, new MessageEventArgs() { Message = msg });
}
}
}