Skip to content
Snippets Groups Projects
Commit 91536aa7 authored by Lab1's avatar Lab1
Browse files

Merge branch 'feature/audio_input_source_no_string' into 4.26

parents 5b7d1249 b8351ccb
Branches
No related tags found
No related merge requests found
// Fill out your copyright notice in the Description page of Project Settings.
#include "SignalSources/VAAudioInputSignalSource.h"
#include "VAUtils.h"
#include "VAPlugin.h"
void UVAAudioInputSignalSource::Initialize()
{
if (bInitialized)
{
FVAUtils::LogStuff("[UVAAudioInputSignalSource::Initialize()]: Signal source is already initialized, aborting...", true);
return;
}
ID = FVAPlugin::GetAudioInputSignalSourceID(Channel);
if (!IsValidID(ID))
{
FVAUtils::LogStuff("[UVAAudioInputSignalSource::Initialize()]: Error initializing Audio Input Signal Source", true);
return;
}
bInitialized = true;
}
// Fill out your copyright notice in the Description page of Project Settings.
#include "SoundSource/VAAudioInputSourceComponent.h"
#include "SignalSources/VAAudioInputSignalSource.h"
UVAAudioInputSourceComponent::UVAAudioInputSourceComponent() : Super()
{
SignalSource = CreateDefaultSubobject<UVAAudioInputSignalSource>("AudioInputSignalSource");
}
...@@ -557,6 +557,25 @@ bool FVAPlugin::SetSignalSourceBufferLooping(const std::string& SignalSourceID, ...@@ -557,6 +557,25 @@ bool FVAPlugin::SetSignalSourceBufferLooping(const std::string& SignalSourceID,
} }
} }
std::string FVAPlugin::GetAudioInputSignalSourceID(const int Channel)
{
if (!ShouldInteractWithServer())
return VA_SLAVE_ID_STRING;
const std::string SignalSourceID = "audioinput" + std::to_string(Channel);
//TODO: Check if signal source really exist, otherwise return invalid ID
//PSC: I was trying to use CVASignalSourceInfo for that. But when the local variable is destroyed, the program crashes.
//std::vector<CVASignalSourceInfo> Infos;
//VAServer->GetSignalSourceInfos(Infos);
//CVASignalSourceInfo Info = VAServer->GetSignalSourceInfo(SignalSourceID);
//if (false)
// return VA_INVALID_ID_STRING;
return SignalSourceID;
}
std::string FVAPlugin::CreateSignalSourcePrototype(UVAAbstractSignalSource* SignalSource) std::string FVAPlugin::CreateSignalSourcePrototype(UVAAbstractSignalSource* SignalSource)
{ {
if (!ShouldInteractWithServer()) if (!ShouldInteractWithServer())
......
...@@ -76,6 +76,9 @@ public: ...@@ -76,6 +76,9 @@ public:
static bool SetSignalSourceBufferPlaybackPosition(const std::string& SignalSourceID, float Time); static bool SetSignalSourceBufferPlaybackPosition(const std::string& SignalSourceID, float Time);
static bool SetSignalSourceBufferLooping(const std::string& SignalSourceID, bool bLoop); static bool SetSignalSourceBufferLooping(const std::string& SignalSourceID, bool bLoop);
// Returns the ID of the signal source referring the given audio input channel. Invalid ID, if channel does not exist
static std::string GetAudioInputSignalSourceID(const int Channel);
static std::string CreateSignalSourcePrototype(UVAAbstractSignalSource* SignalSource); static std::string CreateSignalSourcePrototype(UVAAbstractSignalSource* SignalSource);
// Deletes a signal source with given ID. Use with great care! // Deletes a signal source with given ID. Use with great care!
static bool DeleteSignalSource(const std::string& SignalSourceID); static bool DeleteSignalSource(const std::string& SignalSourceID);
......
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "SignalSources/VAAbstractSignalSource.h"
#include "VAAudioInputSignalSource.generated.h"
/**
*
*/
UCLASS(ClassGroup = (VA))
class VAPLUGIN_API UVAAudioInputSignalSource : public UVAAbstractSignalSource
{
GENERATED_BODY()
protected:
// Input channel used to stream into signal source
UPROPERTY(EditAnywhere, meta = (DisplayName = "Input Channel ID", Category = "Audio Input", ClampMin = "1"))
int Channel = 1;
public:
UVAAudioInputSignalSource() = default;
// Creates the signal source in VA and sets the ID accordingly
void Initialize() override;
};
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "SoundSource/VAAbstractSourceComponent.h"
#include "VAAudioInputSourceComponent.generated.h"
/**
*
*/
UCLASS(ClassGroup = (VA), meta = (BlueprintSpawnableComponent))
class VAPLUGIN_API UVAAudioInputSourceComponent : public UVAAbstractSourceComponent
{
GENERATED_BODY()
public:
UVAAudioInputSourceComponent();
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment