Skip to content
Snippets Groups Projects
Commit 331a976c authored by Nicholas Nakano's avatar Nicholas Nakano
Browse files

Added the ability to retrieve an array of input and output devices for voice chat

parent 9a79899d
No related branches found
No related tags found
No related merge requests found
...@@ -87,6 +87,35 @@ void AARNOPlayerController::JoinVoiceLobby_Implementation(const FString& InLobby ...@@ -87,6 +87,35 @@ void AARNOPlayerController::JoinVoiceLobby_Implementation(const FString& InLobby
} }
} }
TArray<FVoiceDevice> AARNOPlayerController::GetInputDevices()
{
TArray<FVoiceDevice> InputDevices;
if (VoiceChatUser)
{
for (auto VoiceDevice : VoiceChatUser->GetAvailableInputDeviceInfos())
{
InputDevices.Emplace(FVoiceDevice(VoiceDevice.Id, VoiceDevice.DisplayName));
UE_LOG(LogTemp, Display, TEXT("ID: %s Device Name: %s"), *VoiceDevice.Id, *VoiceDevice.DisplayName);
}
}
return InputDevices;
}
TArray<FVoiceDevice> AARNOPlayerController::GetOutputDevices()
{
TArray<FVoiceDevice> OutputDevices;
if (VoiceChatUser)
{
for (auto VoiceDevice : VoiceChatUser->GetAvailableOutputDeviceInfos())
{
OutputDevices.Emplace(FVoiceDevice(VoiceDevice.Id, VoiceDevice.DisplayName));
UE_LOG(LogTemp, Display, TEXT("ID: %s Device Name: %s"), *VoiceDevice.Id, *VoiceDevice.DisplayName);
}
}
return OutputDevices;
}
void AARNOPlayerController::BeginDestroy() void AARNOPlayerController::BeginDestroy()
{ {
Super::BeginDestroy(); Super::BeginDestroy();
......
// Fill out your copyright notice in the Description page of Project Settings.
#include "VoiceDeviceStruct.h"
...@@ -7,6 +7,29 @@ ...@@ -7,6 +7,29 @@
#include "VoiceChat.h" #include "VoiceChat.h"
#include "ARNOPlayerController.generated.h" #include "ARNOPlayerController.generated.h"
USTRUCT(BlueprintType)
struct FVoiceDevice
{
GENERATED_BODY()
FVoiceDevice()
{
}
FVoiceDevice(FString ID, FString DeviceName)
{
this->ID = ID;
this->DeviceName = DeviceName;
}
UPROPERTY(BlueprintReadOnly)
FString ID;
UPROPERTY(BlueprintReadOnly)
FString DeviceName;
};
/** /**
* *
*/ */
...@@ -31,9 +54,14 @@ public: ...@@ -31,9 +54,14 @@ public:
UFUNCTION(Client, Reliable) UFUNCTION(Client, Reliable)
void JoinVoiceLobby(const FString& InLobbyId); void JoinVoiceLobby(const FString& InLobbyId);
UFUNCTION(BlueprintCallable)
TArray<FVoiceDevice> GetInputDevices();
UFUNCTION(BlueprintCallable)
TArray<FVoiceDevice> GetOutputDevices();
virtual void BeginDestroy() override; virtual void BeginDestroy() override;
virtual void BeginPlay() override; virtual void BeginPlay() override;
virtual void Tick(float DeltaSeconds) override; virtual void Tick(float DeltaSeconds) override;
}; };
\ No newline at end of file
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/UserDefinedStruct.h"
#include "VoiceDeviceStruct.generated.h"
/**
*
*/
UCLASS()
class ARNOCMAIN_API UVoiceDeviceStruct : public UUserDefinedStruct
{
GENERATED_BODY()
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment