Skip to content

Commit

Permalink
Merge pull request #5 from Amoenus/4-configurable-host-and-port-for-b…
Browse files Browse the repository at this point in the history
…abble-module

#4: Made Host configurable for Babble Module
  • Loading branch information
dfgHiatus committed May 17, 2024
2 parents 2b026db + eabb14e commit 2990d96
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions BabbleOSC.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,42 @@ public class BabbleOSC
private readonly ILogger _logger;

private readonly int _resolvedPort;
private readonly string _resolvedHost;

private const string DEFAULT_HOST = "127.0.0.1";
private const int DEFAULT_PORT = 8888;

private const int TIMEOUT_MS = 10000;

public BabbleOSC(ILogger iLogger, int? port = null)
public BabbleOSC(ILogger iLogger, int? port = null, string? host = null)
{
_logger = iLogger;
if (_receiver != null)
{
_logger.LogError("BabbleOSC connection already exists.");
return;
}
_receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

_resolvedHost = host ?? DEFAULT_HOST;
_resolvedPort = port ?? DEFAULT_PORT;
_receiver.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), _resolvedPort));
_receiver.ReceiveTimeout = TIMEOUT_MS;

ConfigureReceiver();

_loop = true;
_thread = new Thread(ListenLoop);
_thread.Start();
}

private void ConfigureReceiver()
{
var ipAddress = IPAddress.Parse(_resolvedHost);
var ipEndPoint = new IPEndPoint(ipAddress, _resolvedPort);

_receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
_receiver.Bind(ipEndPoint);
_receiver.ReceiveTimeout = TIMEOUT_MS;
}

private void ListenLoop()
{
byte[] array = new byte[4096];
Expand Down Expand Up @@ -76,9 +90,7 @@ private void ListenLoop()
{
_receiver.Close();
_receiver.Dispose();
_receiver = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
_receiver.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), _resolvedPort));
_receiver.ReceiveTimeout = TIMEOUT_MS;
ConfigureReceiver();
}
}
catch (Exception)
Expand Down

0 comments on commit 2990d96

Please sign in to comment.