NullAudioSystem.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <IAudioSystem.h>
  10. namespace Audio
  11. {
  12. ///////////////////////////////////////////////////////////////////////////////////////////////////
  13. class NullAudioProxy
  14. : public IAudioProxy
  15. {
  16. public:
  17. NullAudioProxy() = default;
  18. ~NullAudioProxy() override = default;
  19. void Initialize(const char*, void*, const bool = true) override {}
  20. void Release() override {}
  21. void ExecuteTrigger(TAudioControlID) override {}
  22. void ExecuteSourceTrigger(TAudioControlID, const SAudioSourceInfo&) override {}
  23. void StopAllTriggers() override {}
  24. void StopTrigger(TAudioControlID) override {}
  25. void SetSwitchState(TAudioControlID, TAudioSwitchStateID) override {}
  26. void SetRtpcValue(TAudioControlID, float) override {}
  27. void SetObstructionCalcType(ObstructionType) override {}
  28. void SetPosition(const SATLWorldPosition&) override {}
  29. void SetPosition(const AZ::Vector3&) override {}
  30. void SetMultiplePositions(const MultiPositionParams&) override {}
  31. void SetEnvironmentAmount(TAudioEnvironmentID, float) override {}
  32. void ResetEnvironments() override {}
  33. void ResetParameters() override {}
  34. TAudioObjectID GetAudioObjectID() const override { return INVALID_AUDIO_OBJECT_ID; }
  35. };
  36. ///////////////////////////////////////////////////////////////////////////////////////////////////
  37. class NullAudioSystem
  38. : public AZ::Interface<Audio::IAudioSystem>::Registrar
  39. {
  40. public:
  41. AZ_RTTI(NullAudioSystem, "{27F054BF-B51C-472C-9ECF-BBBB710C5AC1}", IAudioSystem);
  42. AZ_CLASS_ALLOCATOR(Audio::NullAudioSystem, AZ::SystemAllocator)
  43. NullAudioSystem()
  44. {
  45. AZ_TracePrintf(AZ::Debug::Trace::GetDefaultSystemWindow(), "<Audio>: Running with Null Audio System!\n");
  46. }
  47. ~NullAudioSystem() override = default;
  48. bool Initialize() override { return true; }
  49. void Release() override {}
  50. void ExternalUpdate() override {}
  51. void PushRequest(AudioRequestVariant&&) override {}
  52. void PushRequests(AudioRequestsQueue&) override {}
  53. void PushRequestBlocking(AudioRequestVariant&&) override {}
  54. void PushCallback(AudioRequestVariant&&) override {}
  55. TAudioControlID GetAudioTriggerID(const char*) const override { return INVALID_AUDIO_CONTROL_ID; }
  56. TAudioControlID GetAudioRtpcID(const char*) const override { return INVALID_AUDIO_CONTROL_ID; }
  57. TAudioControlID GetAudioSwitchID(const char*) const override { return INVALID_AUDIO_CONTROL_ID; }
  58. TAudioSwitchStateID GetAudioSwitchStateID(TAudioControlID, const char*) const override { return INVALID_AUDIO_SWITCH_STATE_ID; }
  59. TAudioPreloadRequestID GetAudioPreloadRequestID(const char*) const override { return INVALID_AUDIO_PRELOAD_REQUEST_ID; }
  60. TAudioEnvironmentID GetAudioEnvironmentID(const char*) const override { return INVALID_AUDIO_ENVIRONMENT_ID; }
  61. bool ReserveAudioListenerID(TAudioObjectID& rAudioObjectID) override { rAudioObjectID = INVALID_AUDIO_OBJECT_ID; return true; }
  62. bool ReleaseAudioListenerID(TAudioObjectID) override { return true; }
  63. bool SetAudioListenerOverrideID(TAudioObjectID) override { return true; }
  64. const char* GetControlsPath() const override { return ""; }
  65. void UpdateControlsPath() override {}
  66. void RefreshAudioSystem(const char*) override {}
  67. IAudioProxy* GetAudioProxy() override { return static_cast<IAudioProxy*>(&m_nullAudioProxy); }
  68. void RecycleAudioProxy(IAudioProxy*) override {}
  69. TAudioSourceId CreateAudioSource(const SAudioInputConfig&) override { return INVALID_AUDIO_SOURCE_ID; }
  70. void DestroyAudioSource(TAudioSourceId) override {}
  71. private:
  72. NullAudioProxy m_nullAudioProxy;
  73. };
  74. } // namespace Audio