Files
UnrealEngine/Engine/Plugins/Online/OnlineSubsystemSteam/Source/Private/VoiceEngineSteam.cpp
2025-05-18 13:04:45 +08:00

45 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#if WITH_ENGINE
#include "VoiceEngineSteam.h"
#include "OnlineSubsystemSteamPrivate.h" // IWYU pragma: keep
FVoiceEngineSteam::FVoiceEngineSteam(IOnlineSubsystem* InSubsystem) :
FVoiceEngineImpl(InSubsystem),
SteamUserPtr(SteamUser()),
SteamFriendsPtr(SteamFriends())
{
}
FVoiceEngineSteam::~FVoiceEngineSteam()
{
if (IsRecording())
{
SteamFriendsPtr->SetInGameVoiceSpeaking(SteamUserPtr->GetSteamID(), false);
}
}
void FVoiceEngineSteam::StartRecording() const
{
UE_LOG_ONLINE_VOICEENGINE(VeryVerbose, TEXT("VOIP StartRecording"));
if (GetVoiceCapture().IsValid())
{
if (!GetVoiceCapture()->Start())
{
UE_LOG_ONLINE_VOICEENGINE(Warning, TEXT("Failed to start voice recording"));
}
else if (SteamFriendsPtr)
{
SteamFriendsPtr->SetInGameVoiceSpeaking(SteamUserPtr->GetSteamID(), true);
}
}
}
void FVoiceEngineSteam::StoppedRecording() const
{
UE_LOG_ONLINE_VOICEENGINE(VeryVerbose, TEXT("VOIP StoppedRecording"));
if (SteamFriendsPtr)
{
SteamFriendsPtr->SetInGameVoiceSpeaking(SteamUserPtr->GetSteamID(), false);
}
}
#endif //WITH_ENGINE