WwiseMockFileState.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*******************************************************************************
  2. The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
  3. Technology released in source code form as part of the game integration package.
  4. The content of this file may not be used without valid licenses to the
  5. AUDIOKINETIC Wwise Technology.
  6. Note that the use of the game engine is subject to the Unreal(R) Engine End User
  7. License Agreement at https://www.unrealengine.com/en-US/eula/unreal
  8. License Usage
  9. Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
  10. this file in accordance with the end user license agreement provided with the
  11. software or, alternatively, in accordance with the terms contained
  12. in a written agreement between you and Audiokinetic Inc.
  13. Copyright (c) 2023 Audiokinetic Inc.
  14. *******************************************************************************/
  15. #pragma once
  16. #include "Wwise/WwiseFileState.h"
  17. class FWwiseMockFileState : public FWwiseFileState
  18. {
  19. public:
  20. const TCHAR* GetManagingTypeName() const override final { return TEXT("Test"); }
  21. uint32 GetShortId() const override final { return ShortId; }
  22. FWwiseMockFileState(uint32 ShortId) :
  23. ShortId(ShortId)
  24. {}
  25. ~FWwiseMockFileState() override { Term(); }
  26. void OpenFile(FOpenFileCallback&& InCallback) override
  27. {
  28. FFunctionGraphTask::CreateAndDispatchWhenReady([this, InCallback = MoveTemp(InCallback)]() mutable
  29. {
  30. if (bOpenFileSuccess)
  31. {
  32. OpenFileSucceeded(MoveTemp(InCallback));
  33. }
  34. else
  35. {
  36. OpenFileFailed(MoveTemp(InCallback));
  37. }
  38. });
  39. }
  40. void LoadInSoundEngine(FLoadInSoundEngineCallback&& InCallback) override
  41. {
  42. FFunctionGraphTask::CreateAndDispatchWhenReady([this, InCallback = MoveTemp(InCallback)]() mutable
  43. {
  44. if (bLoadInSoundEngineSuccess)
  45. {
  46. LoadInSoundEngineSucceeded(MoveTemp(InCallback));
  47. }
  48. else
  49. {
  50. LoadInSoundEngineFailed(MoveTemp(InCallback));
  51. }
  52. });
  53. }
  54. void UnloadFromSoundEngine(FUnloadFromSoundEngineCallback&& InCallback) override
  55. {
  56. FFunctionGraphTask::CreateAndDispatchWhenReady([this, InCallback = MoveTemp(InCallback)]() mutable
  57. {
  58. if (bUnloadFromSoundEngineDefer)
  59. {
  60. UnloadFromSoundEngineDefer(MoveTemp(InCallback));
  61. }
  62. else
  63. {
  64. UnloadFromSoundEngineDone(MoveTemp(InCallback));
  65. }
  66. });
  67. }
  68. void CloseFile(FCloseFileCallback&& InCallback) override
  69. {
  70. FFunctionGraphTask::CreateAndDispatchWhenReady([this, InCallback = MoveTemp(InCallback)]() mutable
  71. {
  72. if (bCloseFileDefer)
  73. {
  74. CloseFileDefer(MoveTemp(InCallback));
  75. }
  76. else
  77. {
  78. CloseFileDone(MoveTemp(InCallback));
  79. }
  80. });
  81. }
  82. enum class OptionalBool
  83. {
  84. False,
  85. True,
  86. Default
  87. };
  88. bool CanDelete() const override { return bCanDelete == OptionalBool::Default ? FWwiseFileState::CanDelete() : bCanDelete == OptionalBool::False ? false : true; }
  89. bool CanOpenFile() const override { return bCanOpenFile == OptionalBool::Default ? FWwiseFileState::CanOpenFile() : bCanOpenFile == OptionalBool::False ? false : true; }
  90. bool CanLoadInSoundEngine() const override { return bCanLoadInSoundEngine == OptionalBool::Default ? FWwiseFileState::CanLoadInSoundEngine() : bCanLoadInSoundEngine == OptionalBool::False ? false : true; }
  91. bool CanUnloadFromSoundEngine() const override { return bCanUnloadFromSoundEngine == OptionalBool::Default ? FWwiseFileState::CanUnloadFromSoundEngine() : bCanUnloadFromSoundEngine == OptionalBool::False ? false : true; }
  92. bool CanCloseFile() const override { return bCanCloseFile == OptionalBool::Default ? FWwiseFileState::CanCloseFile() : bCanCloseFile == OptionalBool::False ? false : true; }
  93. bool IsStreamedState() const override { return bIsStreamedState == OptionalBool::Default ? FWwiseFileState::IsStreamedState() : bIsStreamedState == OptionalBool::False ? false : true; }
  94. uint32 ShortId;
  95. bool bOpenFileSuccess{ true };
  96. bool bLoadInSoundEngineSuccess{ true };
  97. bool bUnloadFromSoundEngineDefer{ false };
  98. bool bCloseFileDefer{ false };
  99. OptionalBool bCanDelete{ OptionalBool::Default };
  100. OptionalBool bCanOpenFile{ OptionalBool::Default };
  101. OptionalBool bCanLoadInSoundEngine{ OptionalBool::Default };
  102. OptionalBool bCanUnloadFromSoundEngine{ OptionalBool::Default };
  103. OptionalBool bCanCloseFile{ OptionalBool::Default };
  104. OptionalBool bIsStreamedState{ OptionalBool::Default };
  105. };