2024-01-25 11:21:15 +08:00

31 lines
933 B
C++

#include "ChannelNode.h"
#include "Singleton/MixerList.h"
#include "Mixer/MixerTrack.h"
FChannelNode::FChannelNodeMulticastDelegate FChannelNode::OnChannelNodeDestroyed;
FNullChannelNode FNullChannelNode::Instance;
FMixerChannelNode::FMixerChannelNode(FChannelInterface* InOwner, FMixerTrack* InTrack, int32 InNodeIndex) : FChannelNode(InOwner, EChannelNodeType::MixerNode), Track(InTrack), NodeIndex(InNodeIndex)
{
const TArray<float*>& BufferHeaderArray = Track->Buffer.GetHeaderArray();
ChannelHeaders.Add(BufferHeaderArray[InNodeIndex * 2]);
ChannelHeaders.Add(BufferHeaderArray[InNodeIndex * 2 + 1]);
}
FString FMixerChannelNode::GetName()
{
return Track->GetName() + FString::FromInt(NodeIndex);
}
const TArray<float*>& FMixerChannelNode::GetChannelHeaders()
{
return ChannelHeaders;
}
const TArray<float*>& FNullChannelNode::GetChannelHeaders()
{
return FMixerList::Get().ZeroTrack->Buffer.GetHeaderArray();
}