mirror of
https://github.com/jwetzell/qController.git
synced 2026-08-05 23:43:49 +00:00
68 lines
1.8 KiB
C#
68 lines
1.8 KiB
C#
//Class used for receiving workspace update messages
|
|
|
|
using System;
|
|
using SharpOSC;
|
|
using System.Net;
|
|
using System.Threading;
|
|
|
|
namespace qController
|
|
{
|
|
|
|
public class QReceiver
|
|
{
|
|
public delegate void UpdateMessageReceivedHandler(object source, MessageEventArgs args);
|
|
public event UpdateMessageReceivedHandler UpdateMessageReceived;
|
|
|
|
static Thread thread;
|
|
static UDPListener udpListener;
|
|
static int Port;
|
|
public QReceiver(int port)
|
|
{
|
|
Port = port;
|
|
udpListener = new UDPListener(port);
|
|
thread = new Thread(new ThreadStart(ListenLoop));
|
|
thread.Start();
|
|
|
|
}
|
|
|
|
public void ListenLoop()
|
|
{
|
|
/*
|
|
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, callback);
|
|
*/
|
|
while (true)
|
|
{
|
|
OscMessage messageReceived = null;
|
|
while(messageReceived == null)
|
|
{
|
|
messageReceived = (OscMessage)udpListener.Receive();
|
|
Thread.Sleep(1);
|
|
}
|
|
OnUpdateMessageReceived(messageReceived);
|
|
}
|
|
|
|
}
|
|
|
|
public void Close(){
|
|
|
|
thread.Abort();
|
|
udpListener.Close();
|
|
}
|
|
|
|
protected virtual void OnUpdateMessageReceived(OscMessage msg)
|
|
{
|
|
if (UpdateMessageReceived != null)
|
|
UpdateMessageReceived(this, new MessageEventArgs() { Message = msg });
|
|
}
|
|
}
|
|
}
|