mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-17 21:24:20 +00:00
Begin implementing "/update" responses from QLab
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user