diff --git a/Source/arnocMain/Private/ARNOPlayerController.cpp b/Source/arnocMain/Private/ARNOPlayerController.cpp index 5f07dc1c939136e10ecf4f44ab80ac4cb72f36f1..f876ca6be353cf63a3651f6b2fc827f056c3646f 100644 --- a/Source/arnocMain/Private/ARNOPlayerController.cpp +++ b/Source/arnocMain/Private/ARNOPlayerController.cpp @@ -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() { Super::BeginDestroy(); diff --git a/Source/arnocMain/Private/VoiceDeviceStruct.cpp b/Source/arnocMain/Private/VoiceDeviceStruct.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ace719cd038917a076c2bab145e1712409973771 --- /dev/null +++ b/Source/arnocMain/Private/VoiceDeviceStruct.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "VoiceDeviceStruct.h" + diff --git a/Source/arnocMain/Public/ARNOPlayerController.h b/Source/arnocMain/Public/ARNOPlayerController.h index 4eedd8e2c09c1facf3c95f0b2367f8a48ffad354..5b154df1bb0f17a0080f63b0bd114e1068fa105b 100644 --- a/Source/arnocMain/Public/ARNOPlayerController.h +++ b/Source/arnocMain/Public/ARNOPlayerController.h @@ -7,6 +7,29 @@ #include "VoiceChat.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: UFUNCTION(Client, Reliable) void JoinVoiceLobby(const FString& InLobbyId); + UFUNCTION(BlueprintCallable) + TArray<FVoiceDevice> GetInputDevices(); + UFUNCTION(BlueprintCallable) + TArray<FVoiceDevice> GetOutputDevices(); + virtual void BeginDestroy() override; virtual void BeginPlay() override; virtual void Tick(float DeltaSeconds) override; -}; +}; \ No newline at end of file diff --git a/Source/arnocMain/Public/VoiceDeviceStruct.h b/Source/arnocMain/Public/VoiceDeviceStruct.h new file mode 100644 index 0000000000000000000000000000000000000000..caeb02a0b3f0365f711e95cb7b8f8e7d776baecf --- /dev/null +++ b/Source/arnocMain/Public/VoiceDeviceStruct.h @@ -0,0 +1,17 @@ +// 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() + +};