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; uint32_t receivePort;
if(UOscSettings::Parse(settings->ReceiveFrom, &receiveAddress, &receivePort)) if(UOscSettings::Parse(settings->ReceiveFrom, &receiveAddress, &receivePort))
{ {
_dispatcher->Listen(receiveAddress, receivePort); _dispatcher->Listen(receiveAddress, receivePort, settings->MulticastLoopback);
} }
else else
{ {
+1
View File
@@ -6,6 +6,7 @@
UOscSettings::UOscSettings() UOscSettings::UOscSettings()
: ReceiveFrom("8000"), : ReceiveFrom("8000"),
MulticastLoopback(true),
_sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build()) _sendSocket(FUdpSocketBuilder(TEXT("OscSender")).Build())
{ {
SendTargets.Add(TEXT("127.0.0.1:8000")); SendTargets.Add(TEXT("127.0.0.1:8000"));
+3
View File
@@ -44,6 +44,9 @@ public:
UPROPERTY(Config, EditAnywhere, Category=Input) UPROPERTY(Config, EditAnywhere, Category=Input)
TArray<FString> Inputs; TArray<FString> Inputs;
UPROPERTY(Config, EditAnywhere, Category=Network)
bool MulticastLoopback;
public: public:
void InitSendTargets(); void InitSendTargets();
@@ -25,7 +25,7 @@ UOscDispatcher * UOscDispatcher::Get()
return UOscDispatcher::StaticClass()->GetDefaultObject<UOscDispatcher>(); 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)) if(_listening != std::make_pair(address, port))
{ {
@@ -36,6 +36,10 @@ void UOscDispatcher::Listen(FIPv4Address address, uint32_t port)
if(address.IsMulticastAddress()) if(address.IsMulticastAddress())
{ {
builder.JoinedToGroup(address); builder.JoinedToGroup(address);
if(multicastLoopback)
{
builder.WithMulticastLoopback();
}
} }
else else
{ {
@@ -16,7 +16,7 @@ class UOscDispatcher : public UObject
friend class FOscModule; friend class FOscModule;
void Listen(FIPv4Address address, uint32_t port); void Listen(FIPv4Address address, uint32_t port, bool multicastLoopback);
void Stop(); void Stop();
public: public: