You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Legacy/CryCommon/NullAudioSystem.h

102 lines
5.2 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <IAudioSystem.h>
namespace Audio
{
///////////////////////////////////////////////////////////////////////////////////////////////////
class NullAudioProxy
: public IAudioProxy
{
public:
NullAudioProxy() {}
~NullAudioProxy() override {}
void Initialize(const char* const, const bool = true) override {}
void Release() override {}
void Reset() override {}
void ExecuteSourceTrigger([[maybe_unused]] TAudioControlID nTriggerID, [[maybe_unused]] const SAudioSourceInfo& rSourceInfo, [[maybe_unused]] const SAudioCallBackInfos & rCallbackInfos = SAudioCallBackInfos::GetEmptyObject()) override {}
void ExecuteTrigger(const TAudioControlID, [[maybe_unused]] const SAudioCallBackInfos& rCallbackInfos = SAudioCallBackInfos::GetEmptyObject()) override {}
void StopAllTriggers() override {}
void StopTrigger(const TAudioControlID) override {}
void SetSwitchState(const TAudioControlID, const TAudioSwitchStateID) override {}
void SetRtpcValue(const TAudioControlID, const float) override {}
void SetObstructionCalcType(const EAudioObjectObstructionCalcType) override {}
void SetPosition(const SATLWorldPosition&) override {}
void SetPosition(const AZ::Vector3&) override {}
void SetMultiplePositions([[maybe_unused]] const MultiPositionParams& positions) override {}
void SetEnvironmentAmount(const TAudioEnvironmentID, const float) override {}
void SetCurrentEnvironments() override {}
void ResetRtpcValues() override {}
TAudioObjectID GetAudioObjectID() const override { return INVALID_AUDIO_OBJECT_ID; }
};
///////////////////////////////////////////////////////////////////////////////////////////////////
class NullAudioSystem
: public IAudioSystem
{
public:
AZ_CLASS_ALLOCATOR(Audio::NullAudioSystem, AZ::SystemAllocator, 0)
NullAudioSystem()
{
AudioSystemRequestBus::Handler::BusConnect();
AudioSystemThreadSafeRequestBus::Handler::BusConnect();
AZ_TracePrintf(AZ::Debug::Trace::GetDefaultSystemWindow(), "<Audio>: Running with Null Audio System!\n");
}
~NullAudioSystem() override
{
AudioSystemRequestBus::Handler::BusDisconnect();
AudioSystemThreadSafeRequestBus::Handler::BusDisconnect();
}
bool Initialize() override { return true; }
void Release() override {}
void ExternalUpdate() override {}
void PushRequest(const SAudioRequest&) override {}
void PushRequestBlocking(const SAudioRequest&) override {}
void PushRequestThreadSafe(const SAudioRequest&) override {}
void AddRequestListener(AudioRequestCallbackType, void* const, const EAudioRequestType, const TATLEnumFlagsType) override {}
void RemoveRequestListener(AudioRequestCallbackType, void* const) override {}
TAudioControlID GetAudioTriggerID(const char* const) const override { return INVALID_AUDIO_CONTROL_ID; }
TAudioControlID GetAudioRtpcID(const char* const) const override { return INVALID_AUDIO_CONTROL_ID; }
TAudioControlID GetAudioSwitchID(const char* const) const override { return INVALID_AUDIO_CONTROL_ID; }
TAudioSwitchStateID GetAudioSwitchStateID(const TAudioControlID, const char* const) const override { return INVALID_AUDIO_SWITCH_STATE_ID; }
TAudioPreloadRequestID GetAudioPreloadRequestID(const char* const) const override { return INVALID_AUDIO_PRELOAD_REQUEST_ID; }
TAudioEnvironmentID GetAudioEnvironmentID(const char* const) const override { return INVALID_AUDIO_ENVIRONMENT_ID; }
bool ReserveAudioListenerID(TAudioObjectID& rAudioObjectID) override { rAudioObjectID = INVALID_AUDIO_OBJECT_ID; return true; }
bool ReleaseAudioListenerID(const TAudioObjectID) override { return true; }
bool SetAudioListenerOverrideID(const TAudioObjectID) override { return true; }
void GetInfo(SAudioSystemInfo&) override {}
const char* GetControlsPath() const override { return ""; }
void UpdateControlsPath() override {}
void RefreshAudioSystem(const char* const) override {}
IAudioProxy* GetFreeAudioProxy() override { return static_cast<IAudioProxy*>(&m_nullAudioProxy); }
void FreeAudioProxy(IAudioProxy* const) override {}
TAudioSourceId CreateAudioSource([[maybe_unused]] const SAudioInputConfig& sourceConfig) override { return INVALID_AUDIO_SOURCE_ID; }
void DestroyAudioSource([[maybe_unused]] TAudioSourceId sourceId) override {}
const char* GetAudioControlName([[maybe_unused]] const EAudioControlType controlType, [[maybe_unused]] const TATLIDType atlID) const override { return nullptr; }
const char* GetAudioSwitchStateName([[maybe_unused]] const TAudioControlID switchID, [[maybe_unused]] const TAudioSwitchStateID stateID) const override { return nullptr; }
private:
NullAudioProxy m_nullAudioProxy;
};
} // namespace Audio