2022-06-29 15:01:54 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "MetasoundDataReference.h"
|
|
|
|
|
#include "MetasoundDataTypeRegistrationMacro.h"
|
|
|
|
|
#include "IAudioProxyInitializer.h"
|
|
|
|
|
#include "Sound/AudioBus.h"
|
|
|
|
|
|
|
|
|
|
namespace Metasound
|
|
|
|
|
{
|
|
|
|
|
// Forward declare ReadRef
|
|
|
|
|
class FAudioBus;
|
|
|
|
|
|
|
|
|
|
// Metasound data type that holds onto a weak ptr. Mostly used as a placeholder until we have a proper proxy type.
|
|
|
|
|
class METASOUNDENGINE_API FAudioBusAsset
|
|
|
|
|
{
|
|
|
|
|
FAudioBusProxyPtr AudioBusProxy;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
FAudioBusAsset() = default;
|
|
|
|
|
FAudioBusAsset(const FAudioBusAsset&) = default;
|
|
|
|
|
FAudioBusAsset& operator=(const FAudioBusAsset& Other) = default;
|
|
|
|
|
|
2022-12-14 13:56:22 -05:00
|
|
|
FAudioBusAsset(const TSharedPtr<Audio::IProxyData>& InInitData);
|
2022-06-29 15:01:54 -04:00
|
|
|
|
|
|
|
|
const FAudioBusProxyPtr& GetAudioBusProxy() const
|
|
|
|
|
{
|
|
|
|
|
return AudioBusProxy;
|
|
|
|
|
}
|
2024-05-07 15:58:09 -04:00
|
|
|
|
|
|
|
|
friend FORCEINLINE uint32 GetTypeHash(const Metasound::FAudioBusAsset& InAudioBusAsset)
|
|
|
|
|
{
|
2024-05-10 17:01:47 -04:00
|
|
|
const FAudioBusProxyPtr& Proxy = InAudioBusAsset.GetAudioBusProxy();
|
|
|
|
|
if (Proxy.IsValid())
|
|
|
|
|
{
|
|
|
|
|
return GetTypeHash(*Proxy);
|
|
|
|
|
}
|
|
|
|
|
return INDEX_NONE;
|
2024-05-07 15:58:09 -04:00
|
|
|
}
|
2022-06-29 15:01:54 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
DECLARE_METASOUND_DATA_REFERENCE_TYPES(FAudioBusAsset, METASOUNDENGINE_API, FAudioBusAssetTypeInfo, FAudioBusAssetReadRef, FAudioBusAssetWriteRef)
|
2024-05-30 10:27:00 -04:00
|
|
|
|
|
|
|
|
METASOUNDENGINE_API int32 AudioBusReaderNodeInitialNumBlocks(int32 BlockSizeFrames, int32 AudioMixerOutputFrames);
|
|
|
|
|
METASOUNDENGINE_API int32 AudioBusWriterNodeInitialNumBlocks(int32 BlockSizeFrames, int32 AudioMixerOutputFrames);
|
2022-06-29 15:01:54 -04:00
|
|
|
}
|
|
|
|
|
|