This repository has been archived on 2025-04-18. You can view files and clone it, but cannot push or open issues or pull requests.
TjgL 0108c69639 Added FMOD integration
Signed-off-by: TjgL <lithmoneo@gmail.com>
2025-02-22 14:19:53 +01: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);
}
}
};