Added Module Remote To add HTTP basic RemoteControl

This commit is contained in:
2025-07-16 02:41:08 +02:00
parent d6b8874827
commit da89e35eb2
13 changed files with 769 additions and 25 deletions

View File

@ -0,0 +1,114 @@
// ===============================================
// 3. SOURCE FILE (.CPP) - TOUS LES INCLUDES
// ===============================================
// YourRundownController.cpp
#include "RundownController.h"
#include "DTFluxUtilitiesModule.h"
#include "Rundown/AvaRundown.h"
#include "Rundown/AvaRundownPage.h"
#include "Engine/Engine.h"
#include "Engine/World.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/ConstructorHelpers.h"
#include "TimerManager.h"
#include "Logging/LogMacros.h"
#include "Components/StaticMeshComponent.h"
#include "Materials/MaterialInterface.h"
#include "Blueprint/UserWidget.h"
DEFINE_LOG_CATEGORY_STATIC(LogYourRundownController, Log, All);
// ===============================================
// 4. IMPLÉMENTATION SIMPLE
// ===============================================
ARundownController::ARundownController()
{
PrimaryActorTick.bCanEverTick = false;
}
bool ARundownController::LoadRundown(const TSoftObjectPtr<UAvaRundown> RundownAsset)
{
if (RundownAsset.IsNull())
{
UE_LOG(logDTFluxUtilities, Error, TEXT("RundownAsset Null"));
return false;
}
// Charger l'asset rundown
CurrentRundown = RundownAsset.LoadSynchronous();
if (!CurrentRundown)
{
UE_LOG(LogYourRundownController, Error, TEXT("Failed to load rundown: %s"), *RundownAsset.ToString());
return false;
}
// Initialiser le contexte de playback
CurrentRundown->InitializePlaybackContext();
UE_LOG(LogYourRundownController, Log, TEXT("Successfully loaded rundown: %s"), *RundownAsset.ToString());
return true;
}
bool ARundownController::PlayPage(int32 PageId)
{
if (!CurrentRundown)
{
UE_LOG(LogYourRundownController, Error, TEXT("No rundown loaded. Call LoadRundown first."));
return false;
}
// Vérifier que la page existe
const FAvaRundownPage& Page = CurrentRundown->GetPage(PageId);
if (!Page.IsValidPage())
{
UE_LOG(LogYourRundownController, Error, TEXT("Invalid page ID: %d"), PageId);
return false;
}
// Jouer la page
bool bSuccess = CurrentRundown->PlayPage(PageId, EAvaRundownPagePlayType::PlayFromStart);
if (bSuccess)
{
CurrentPageId = PageId;
UE_LOG(LogYourRundownController, Log, TEXT("Playing page %d: %s"), PageId, *Page.GetPageName());
}
else
{
UE_LOG(LogYourRundownController, Warning, TEXT("Failed to play page %d"), PageId);
}
return bSuccess;
}
bool ARundownController::StopPage(int32 PageId)
{
if (!CurrentRundown)
{
UE_LOG(LogYourRundownController, Error, TEXT("No rundown loaded"));
return false;
}
bool bSuccess = CurrentRundown->StopPage(PageId, EAvaRundownPageStopOptions::Default, false);
if (bSuccess)
{
UE_LOG(LogYourRundownController, Log, TEXT("Stopped page %d"), PageId);
}
return bSuccess;
}
FString ARundownController::ListePages()
{
if (!CurrentRundown)
{
UE_LOG(logDTFluxUtilities, Error, TEXT("No rundown loaded"));
return FString();
}
return FString();
}