add the multicast loopback option (was always disabled)

This commit is contained in:
monsieurgustav
2016-12-20 18:16:32 +01:00
parent 0edce626a4
commit f37bb6e741
5 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ public:
uint32_t receivePort;
if(UOscSettings::Parse(settings->ReceiveFrom, &receiveAddress, &receivePort))
{
_dispatcher->Listen(receiveAddress, receivePort);
_dispatcher->Listen(receiveAddress, receivePort, settings->MulticastLoopback);
}
else
{
+1
View File
@@ -6,6 +6,7 @@
UOscSettings::UOscSettings()
: ReceiveFrom("8000"),
MulticastLoopback(true),
_sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build())
{
SendTargets.Add(TEXT("127.0.0.1:8000"));
+3
View File
@@ -44,6 +44,9 @@ public:
UPROPERTY(Config, EditAnywhere, Category=Input)
TArray<FString> Inputs;
UPROPERTY(Config, EditAnywhere, Category=Network)
bool MulticastLoopback;
public:
void InitSendTargets();
@@ -25,7 +25,7 @@ UOscDispatcher * UOscDispatcher::Get()
return UOscDispatcher::StaticClass()->GetDefaultObject<UOscDispatcher>();
}
void UOscDispatcher::Listen(FIPv4Address address, uint32_t port)
void UOscDispatcher::Listen(FIPv4Address address, uint32_t port, bool multicastLoopback)
{
if(_listening != std::make_pair(address, port))
{
@@ -36,6 +36,10 @@ void UOscDispatcher::Listen(FIPv4Address address, uint32_t port)
if(address.IsMulticastAddress())
{
builder.JoinedToGroup(address);
if(multicastLoopback)
{
builder.WithMulticastLoopback();
}
}
else
{
@@ -16,7 +16,7 @@ class UOscDispatcher : public UObject
friend class FOscModule;
void Listen(FIPv4Address address, uint32_t port);
void Listen(FIPv4Address address, uint32_t port, bool multicastLoopback);
void Stop();
public: