2021-12-10 20:37:31 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
#include "MetasoundOutputFormatInterfaces.h"
|
|
|
|
|
|
|
|
|
|
#include "IAudioParameterInterfaceRegistry.h"
|
|
|
|
|
#include "MetasoundAudioBuffer.h"
|
|
|
|
|
#include "MetasoundTrigger.h"
|
|
|
|
|
#include "Templates/SharedPointer.h"
|
|
|
|
|
#include "UObject/Class.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define LOCTEXT_NAMESPACE "MetasoundFrontend"
|
|
|
|
|
namespace Metasound
|
|
|
|
|
{
|
|
|
|
|
namespace Frontend
|
|
|
|
|
{
|
|
|
|
|
#define AUDIO_PARAMETER_INTERFACE_NAMESPACE "UE.OutputFormat.Mono"
|
|
|
|
|
namespace OutputFormatMonoInterface
|
|
|
|
|
{
|
|
|
|
|
const FMetasoundFrontendVersion& GetVersion()
|
|
|
|
|
{
|
|
|
|
|
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 1, 0 } };
|
|
|
|
|
return Version;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace Outputs
|
|
|
|
|
{
|
|
|
|
|
const FName MonoOut = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("Audio:0");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Audio::FParameterInterfacePtr CreateInterface(const UClass& InUClass)
|
|
|
|
|
{
|
|
|
|
|
struct FInterface : public Audio::FParameterInterface
|
|
|
|
|
{
|
|
|
|
|
FInterface(const UClass& InAssetClass)
|
|
|
|
|
: FParameterInterface(OutputFormatMonoInterface::GetVersion().Name, OutputFormatMonoInterface::GetVersion().Number.ToInterfaceVersion(), InAssetClass)
|
|
|
|
|
{
|
|
|
|
|
Outputs =
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
LOCTEXT("GeneratedAudioDisplayName", "Out Mono"),
|
|
|
|
|
LOCTEXT("GeneratedAudioDescription", "The resulting mono output from this source."),
|
|
|
|
|
GetMetasoundDataTypeName<FAudioBuffer>(),
|
2022-03-01 16:31:55 -05:00
|
|
|
Outputs::MonoOut,
|
|
|
|
|
FText::GetEmpty(), // RequiredText
|
|
|
|
|
EAudioParameterType::None,
|
|
|
|
|
100
|
2021-12-10 20:37:31 -05:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return MakeShared<FInterface>(InUClass);
|
|
|
|
|
}
|
|
|
|
|
} // namespace OutputFormatMonoInterface
|
|
|
|
|
#undef AUDIO_PARAMETER_INTERFACE_NAMESPACE
|
|
|
|
|
|
|
|
|
|
#define AUDIO_PARAMETER_INTERFACE_NAMESPACE "UE.OutputFormat.Stereo"
|
|
|
|
|
namespace OutputFormatStereoInterface
|
|
|
|
|
{
|
|
|
|
|
const FMetasoundFrontendVersion& GetVersion()
|
|
|
|
|
{
|
|
|
|
|
static const FMetasoundFrontendVersion Version = { AUDIO_PARAMETER_INTERFACE_NAMESPACE, { 1, 0 } };
|
|
|
|
|
return Version;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace Outputs
|
|
|
|
|
{
|
|
|
|
|
const FName LeftOut = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("Audio:0");
|
|
|
|
|
const FName RightOut = AUDIO_PARAMETER_INTERFACE_MEMBER_DEFINE("Audio:1");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Audio::FParameterInterfacePtr CreateInterface(const UClass& InUClass)
|
|
|
|
|
{
|
|
|
|
|
struct FInterface : public Audio::FParameterInterface
|
|
|
|
|
{
|
|
|
|
|
FInterface(const UClass& InAssetClass)
|
|
|
|
|
: FParameterInterface(OutputFormatStereoInterface::GetVersion().Name, OutputFormatStereoInterface::GetVersion().Number.ToInterfaceVersion(), InAssetClass)
|
|
|
|
|
{
|
|
|
|
|
Outputs =
|
|
|
|
|
{
|
|
|
|
|
{
|
2022-01-18 17:44:56 -05:00
|
|
|
LOCTEXT("OutputFormatStereoInterface_GeneratedLeftDisplayName", "Out Left"),
|
|
|
|
|
LOCTEXT("OutputFormatStereoInterface_GeneratedLeftDescription", "The resulting left channel output audio from this source."),
|
2021-12-10 20:37:31 -05:00
|
|
|
GetMetasoundDataTypeName<FAudioBuffer>(),
|
2022-03-01 16:31:55 -05:00
|
|
|
Outputs::LeftOut,
|
|
|
|
|
FText::GetEmpty(), // RequiredText
|
|
|
|
|
EAudioParameterType::None,
|
|
|
|
|
100
|
2021-12-10 20:37:31 -05:00
|
|
|
},
|
|
|
|
|
{
|
2022-01-18 17:44:56 -05:00
|
|
|
LOCTEXT("OutputFormatStereoInterface_GeneratedRightDisplayName", "Out Right"),
|
|
|
|
|
LOCTEXT("OutputFormatStereoInterface_GeneratedRightDescription", "The resulting right channel output audio from this source."),
|
2021-12-10 20:37:31 -05:00
|
|
|
GetMetasoundDataTypeName<FAudioBuffer>(),
|
2022-03-01 16:31:55 -05:00
|
|
|
Outputs::RightOut,
|
|
|
|
|
FText::GetEmpty(), // RequiredText
|
|
|
|
|
EAudioParameterType::None,
|
|
|
|
|
101
|
2021-12-10 20:37:31 -05:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return MakeShared<FInterface>(InUClass);
|
|
|
|
|
}
|
|
|
|
|
} // namespace OutputFormatStereoInterface
|
|
|
|
|
#undef AUDIO_PARAMETER_INTERFACE_NAMESPACE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#undef LOCTEXT_NAMESPACE
|