Hozach (Audio) aac996d671 Committing Changes(?)
Committing changes that aren't mine but Git is saying they're mine (Events for footsteps). Shouldn't mess anything up.
2025-04-25 13:35:28 -04:00

36 lines
976 B
C

// Copyright (c), Firelight Technologies Pty, Ltd. 2025-2025.
#pragma once
#include "IAudioLink.h"
#include "AudioDevice.h"
#include "IBufferedAudioOutput.h"
#include "FMODAudioLinkInputClient.h"
//* AudioLink Instance, a container holding shared pointers for lifetime management. */
struct FFMODAudioLink : IAudioLink
{
FSharedBufferedOutputPtr ProducerSP;
FSharedFMODAudioLinkInputClientPtr ConsumerSP;
FAudioDevice* AudioDevice;
FFMODAudioLink(const FSharedBufferedOutputPtr& InProducerSP, const FSharedFMODAudioLinkInputClientPtr& InConsumerSP, FAudioDevice* InAudioDevice = nullptr)
: ProducerSP(InProducerSP)
, ConsumerSP(InConsumerSP)
, AudioDevice(InAudioDevice)
{}
virtual ~FFMODAudioLink() override
{
if (ConsumerSP.IsValid())
{
ConsumerSP->Stop();
}
if (AudioDevice && ProducerSP.IsValid())
{
ProducerSP->Stop(AudioDevice);
}
}
};