From 1dfce784509f44be8c02db83d7a3da03ffb7a343 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Mon, 8 Mar 2021 07:24:29 -0500 Subject: [PATCH] new pattern for handling the redis results --- .../Private/ProtocolLibrary.cpp | 16 ++++++++ .../Public/EventSourceActor.h | 1 + .../Public/ProtocolLibrary.h | 21 ++++++++++ .../EventCenterPlugin/Public/ProtocolTypes.h | 41 +++++++++++++++++++ server.py | 2 + 5 files changed, 81 insertions(+) create mode 100644 Source/EventCenterPlugin/Private/ProtocolLibrary.cpp create mode 100644 Source/EventCenterPlugin/Public/ProtocolLibrary.h create mode 100644 Source/EventCenterPlugin/Public/ProtocolTypes.h diff --git a/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp b/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp new file mode 100644 index 0000000..c8f9265 --- /dev/null +++ b/Source/EventCenterPlugin/Private/ProtocolLibrary.cpp @@ -0,0 +1,16 @@ +#include "ProtocolLibrary.h" + +FTtsRequest UProtocolLibrary::DecodeTtsPayload(const FString& payload) +{ + FTtsRequest request = FTtsRequest(); + + request.Username = FString(TEXT("user")); + request.VoiceName = FString(TEXT("sonic")); + request.Text = FString(TEXT("gotta go fast")); + + return request; +} + +/*void UProtocolLibrary::DecodeTtsPayload() +{ +}*/ diff --git a/Source/EventCenterPlugin/Public/EventSourceActor.h b/Source/EventCenterPlugin/Public/EventSourceActor.h index 8de304f..29cbc81 100644 --- a/Source/EventCenterPlugin/Public/EventSourceActor.h +++ b/Source/EventCenterPlugin/Public/EventSourceActor.h @@ -22,6 +22,7 @@ DECLARE_LOG_CATEGORY_EXTERN(EventSourceLog, Log, All); // due to an Unreal Engine limitation DECLARE_DYNAMIC_DELEGATE_TwoParams(FMySubscriberRefDelegate, const FString&, Channel, const FString&, Message); + /** * AEventSourceActor * diff --git a/Source/EventCenterPlugin/Public/ProtocolLibrary.h b/Source/EventCenterPlugin/Public/ProtocolLibrary.h new file mode 100644 index 0000000..6f6d093 --- /dev/null +++ b/Source/EventCenterPlugin/Public/ProtocolLibrary.h @@ -0,0 +1,21 @@ +#pragma once + +// Unreal Core +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" + +#include "Kismet/BlueprintFunctionLibrary.h" + +#include "ProtocolTypes.h" + +#include "ProtocolLibrary.generated.h" + +UCLASS() +class EVENTCENTERPLUGIN_API UProtocolLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintPure, Category = "EventCenterHelperFunctions") + static FTtsRequest DecodeTtsPayload(const FString& payload); +}; diff --git a/Source/EventCenterPlugin/Public/ProtocolTypes.h b/Source/EventCenterPlugin/Public/ProtocolTypes.h new file mode 100644 index 0000000..e45c850 --- /dev/null +++ b/Source/EventCenterPlugin/Public/ProtocolTypes.h @@ -0,0 +1,41 @@ +#pragma once + +// Unreal Core +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" + +#include "ProtocolTypes.generated.h" + +/*UCLASS() +class EVENTCENTERPLUGIN_API UTtsRequest : public UObject { + GENERATED_BODY() + +public: + inline UTtsRequest() { + } + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString Username; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString VoiceName; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString Text; +};*/ + +USTRUCT(BlueprintType) +struct EVENTCENTERPLUGIN_API FTtsRequest { + GENERATED_BODY() + +public: + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString Username; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString VoiceName; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly) + FString Text; +}; + diff --git a/server.py b/server.py index 2de9e3c..6a74b2a 100644 --- a/server.py +++ b/server.py @@ -28,7 +28,9 @@ async def server(websocket, path): mpsc = Receiver(loop=loop) async def reader(mpsc): + print('foo', flush=True) async for channel, msg in mpsc.iter(): + print('bar', flush=True) assert isinstance(channel, AbcChannel) print("Got {!r} in channel {!r}".format(msg, channel))