diff --git a/Source/DTFluxAPI/Private/DTFluxCountDown/DTFluxCountDownComponent.cpp b/Source/DTFluxAPI/Private/DTFluxCountDown/DTFluxCountDownComponent.cpp index 1ab5d85..1d0ec3b 100644 --- a/Source/DTFluxAPI/Private/DTFluxCountDown/DTFluxCountDownComponent.cpp +++ b/Source/DTFluxAPI/Private/DTFluxCountDown/DTFluxCountDownComponent.cpp @@ -87,6 +87,6 @@ void UDTFluxCountDownComponent::CountUpTimerFn() void UDTFluxCountDownComponent::WaitingTimerFn() { - UE_LOG(LogDTFluxAPI, Log, TEXT("WAITING")); + // UE_LOG(LogDTFluxAPI, Log, TEXT("WAITING")); } diff --git a/Source/DTFluxAPI/Private/DTFluxSubsystem/DTFluxSubsystem.cpp b/Source/DTFluxAPI/Private/DTFluxSubsystem/DTFluxSubsystem.cpp index 2b2f3bc..58489a1 100644 --- a/Source/DTFluxAPI/Private/DTFluxSubsystem/DTFluxSubsystem.cpp +++ b/Source/DTFluxAPI/Private/DTFluxSubsystem/DTFluxSubsystem.cpp @@ -77,13 +77,13 @@ void UDTFluxSubsystem::LoadConfig(const UDTFluxProjectSettings* Settings) SubSettings.WebsocketPort = Settings->WebsocketServerPort; SubSettings.WebsocketAddress = Settings->WebsocketServerAddress; SubSettings.ProxyAddress = Settings->ProxyAddress; - SubSettings.ProxyPort = Settings->ProxyPort; - TMap SettingsEndpoints; - SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint); - SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint); - SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint); - SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint); - SubSettings.ProxyEndpoints = SettingsEndpoints; + // SubSettings.ProxyPort = Settings->ProxyPort; + // TMap SettingsEndpoints; + // SettingsEndpoints.Add(FString("race-data"), Settings->ProxyRaceDataEndpoint); + // SettingsEndpoints.Add(FString("contest-ranking"), Settings->ProxyRankingEndpoint); + // SettingsEndpoints.Add(FString("stage-ranking"), Settings->ProxyRankingEndpoint); + // SettingsEndpoints.Add(FString("team-list"), Settings->ProxyTeamsEndpoint); + // SubSettings.ProxyEndpoints = SettingsEndpoints; } // Get project Settings @@ -359,6 +359,22 @@ void UDTFluxSubsystem::WsReceivedMessage( const FString& MessageReceived) Event.WsResponseType = StatusUpdate; } + if(Type.Contains("broadcast-message")) + { + FDTFluxArchSelectResponse ArchSelectResponse; + if( !FJsonObjectConverter::JsonObjectToUStruct + (Json.ToSharedRef(), &ArchSelectResponse)) + { + UE_LOG(LogDTFluxAPI, Error, TEXT("Message %s is not a valid broadcast-message data"), *MessageReceived) + } + for(const auto& ArchSelect : ArchSelectResponse.Datas) + { + ProcessArchSelect(ArchSelect); + } + Event.RawData = "ArchSelect"; + Event.WsResponseType = ArchSelect; + UE_LOG(LogDTFluxAPI, Log, TEXT("Received broadcast-message data")); + } } OnWsEvent.Broadcast(Event); } @@ -515,3 +531,8 @@ void UDTFluxSubsystem::ProcessSplitSensor(const FDTFluxSplitSensorResponse& Spli } +void UDTFluxSubsystem::ProcessArchSelect(FDTFluxArchSelectResponseItem ArchSelectResponse) +{ + OnArchSelect.Broadcast(ArchSelectResponse.ContestId, ArchSelectResponse.StageId); +} + diff --git a/Source/DTFluxAPI/Public/DTFluxModel/DTFluxModelResponse.h b/Source/DTFluxAPI/Public/DTFluxModel/DTFluxModelResponse.h index 185748e..ef47366 100644 --- a/Source/DTFluxAPI/Public/DTFluxModel/DTFluxModelResponse.h +++ b/Source/DTFluxAPI/Public/DTFluxModel/DTFluxModelResponse.h @@ -288,5 +288,27 @@ struct DTFLUXAPI_API FDTFluxTeamUpdateResponse TArray Datas; }; +USTRUCT() +struct DTFLUXAPI_API FDTFluxArchSelectResponseItem +{ + GENERATED_BODY() + UPROPERTY() + FString Type = "arch-select"; + UPROPERTY() + int ContestId; + UPROPERTY() + int StageId; +}; +USTRUCT() +struct DTFLUXAPI_API FDTFluxArchSelectResponse +{ + GENERATED_BODY() + + UPROPERTY() + FString Type = "arch-select"; + UPROPERTY() + TArray Datas; + +}; \ No newline at end of file diff --git a/Source/DTFluxAPI/Public/DTFluxProjectSettings/DTFluxProjectSettings.h b/Source/DTFluxAPI/Public/DTFluxProjectSettings/DTFluxProjectSettings.h index 468e65e..18648c6 100644 --- a/Source/DTFluxAPI/Public/DTFluxProjectSettings/DTFluxProjectSettings.h +++ b/Source/DTFluxAPI/Public/DTFluxProjectSettings/DTFluxProjectSettings.h @@ -22,48 +22,48 @@ public: OnDTFluxProjectSettingsModified OnProjectSettingsModified; - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - int RaceResultPort = 80; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - FString RaceResultUrl = "http://localhost"; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - FString RaceResultSessionID; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - bool bAccessIsLocal = true; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - FString StartListAccessToken; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - FString GeneralClassificationAccessToken; - - UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) - FString LiveStageResultsAccessToken ; + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // int RaceResultPort = 80; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // FString RaceResultUrl = "http://localhost"; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // FString RaceResultSessionID; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // bool bAccessIsLocal = true; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // FString StartListAccessToken; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // FString GeneralClassificationAccessToken; + // + // UPROPERTY(Category="DTFlux|Config|Race Result API", Config, EditAnywhere, BlueprintReadOnly) + // FString LiveStageResultsAccessToken ; // Proxy UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) int WebsocketServerPort = 3000; UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - FString WebsocketServerAddress = "ws://127.0.0.1"; + FString WebsocketServerAddress = "ws://127.0.0.1/ws"; UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) FString ProxyAddress = "http://localhost"; - UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - int ProxyPort = 8000; - - UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - FString ProxyRootPath = "/endpoints"; - UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - FString ProxyRaceDataEndpoint; - UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - FString ProxyRankingEndpoint; - UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) - FString ProxyTeamsEndpoint; + // UPROPERTY(Category="DTFlux|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) + // int ProxyPort = 8000; + // + // UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) + // FString ProxyRootPath = "/endpoints"; + // UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) + // FString ProxyRaceDataEndpoint; + // UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) + // FString ProxyRankingEndpoint; + // UPROPERTY(Category="DTFlux|Config|Chrono Proxy", Config, EditAnywhere, BlueprintReadOnly) + // FString ProxyTeamsEndpoint; //Server Config ****NOT USED**** diff --git a/Source/DTFluxAPI/Public/DTFluxSubsystem/DTFluxSubsystem.h b/Source/DTFluxAPI/Public/DTFluxSubsystem/DTFluxSubsystem.h index ec51e48..bcf5dc4 100644 --- a/Source/DTFluxAPI/Public/DTFluxSubsystem/DTFluxSubsystem.h +++ b/Source/DTFluxAPI/Public/DTFluxSubsystem/DTFluxSubsystem.h @@ -36,6 +36,8 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnContestBegin, int, ContestId); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnStageBegin, int, ContestId, int, StageId); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnTimesUp, int, ContestId, int, StageId); DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnRestTimeBegin, int, ContestId, int, StageId); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnArchSelect, int, ContestId, int, StageId); + /** * DTFlux API Subsystem * @@ -122,6 +124,8 @@ public: FOnRestTimeBegin FOnRestTimeBegin; UPROPERTY(BlueprintAssignable, Category="DTFlux|Events") FOnRaceDataReceived OnRaceDataReceived; + UPROPERTY(BlueprintAssignable, Category="DTFlux|Events") + FOnArchSelect OnArchSelect; // UPROPERTY(BlueprintReadWrite, Category="DTFlux|Subsystem|Websocket") // int ReconnectTimeout = 60; //seconds @@ -168,6 +172,8 @@ public: UFUNCTION() void ProcessSplitSensor(const FDTFluxSplitSensorResponse& SplitSensorResponse); + UFUNCTION() + void ProcessArchSelect(FDTFluxArchSelectResponseItem ArchSelectResponse); UFUNCTION() void WsConnected(); diff --git a/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxEnums.h b/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxEnums.h index eca4f74..e508800 100644 --- a/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxEnums.h +++ b/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxEnums.h @@ -52,6 +52,7 @@ enum EDTFluxResponseType: uint8 WsConnected = 9 UMETA(DisplayName="WsConnected"), WsClosed = 10 UMETA(DisplayName="WsClosed"), WsError = 11 UMETA(DisplayName="WsError"), + ArchSelect = 12 UMETA(DisplayName="ArchSelect"), }; UENUM(BlueprintType, Category="DTFlux|Subsystem") diff --git a/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxUtils.h b/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxUtils.h index aa9cde9..c94e589 100644 --- a/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxUtils.h +++ b/Source/DTFluxAPI/Public/DTFluxUtils/DTFluxUtils.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "CrossCompilerCommon.h" #include "DTFluxModel/DTFluxModel.h" #include "DTFluxSubsystem/DTFluxSubsystem.h" #include "UObject/Object.h" @@ -119,4 +120,5 @@ public: UFUNCTION(BlueprintCallable, Category="DTFlux|Model|Helpers") static EDTFluxStageStatusType GetStatusType(const int ContestID, const int StageID, UDTFluxDataStorage* DataStorage); + };