BsAudioManager.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. #include "Utility/BsModule.h"
  6. namespace bs
  7. {
  8. /** @addtogroup Audio-Internal
  9. * @{
  10. */
  11. /** Creates and destroys a specific audio system implementation. */
  12. class BS_CORE_EXPORT AudioFactory
  13. {
  14. public:
  15. virtual ~AudioFactory() { }
  16. /** Initializes the audio system. */
  17. virtual void startUp() = 0;
  18. /** Shuts down the audio system. */
  19. virtual void shutDown() = 0;
  20. };
  21. /** Takes care of loading, initializing and shutting down of a particular audio system implementation. */
  22. class BS_CORE_EXPORT AudioManager : public Module<AudioManager>
  23. {
  24. public:
  25. /**
  26. * Initializes the physics manager and a particular audio system implementation.
  27. *
  28. * @param[in] pluginName Name of the plugin containing a audio system implementation.
  29. */
  30. AudioManager(const String& pluginName);
  31. ~AudioManager();
  32. private:
  33. DynLib* mPlugin;
  34. AudioFactory* mFactory;
  35. };
  36. /** @} */
  37. }