Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

42 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Templates/SharedPointer.h"
#include "Modules/ModuleInterface.h"
class IAnalyticsProviderET;
class IMediaEventSink;
class IMediaPlayer;
/**
* Interface for the ElectraPlayerPlugin module.
*/
class IElectraPlayerPluginModule
: public IModuleInterface
{
public:
virtual ~IElectraPlayerPluginModule() = default;
/**
* Is the ElectraPlayerPlugin module initialized?
* @return True if the module is initialized.
*/
virtual bool IsInitialized() const = 0;
/**
* Creates a media player
*
* @param EventSink The object that receives media events from the player.
* @return A new media player, or nullptr if a player couldn't be created.
*/
virtual TSharedPtr<IMediaPlayer, ESPMode::ThreadSafe> CreatePlayer(IMediaEventSink& EventSink) = 0;
virtual void SendAnalyticMetrics(const TSharedPtr<IAnalyticsProviderET>& AnalyticsProvider, const FGuid& PlayerGuid) = 0;
virtual void SendAnalyticMetricsPerMinute(const TSharedPtr<IAnalyticsProviderET>& AnalyticsProvider) = 0;
virtual void ReportVideoStreamingError(const FGuid& PlayerGuid, const FString& LastError) = 0;
virtual void ReportSubtitlesMetrics(const FGuid& PlayerGuid, const FString& URL, double ResponseTime, const FString& LastError) = 0;
};