Program Listing for File AudioManager.hpp

Return to documentation for file (engine/include/Cacao/AudioManager.hpp)

#pragma once

#include "DllHelper.hpp"

#include <memory>

namespace Cacao {
    class CACAO_API AudioManager {
      public:
        static AudioManager& Get();

        AudioManager(const AudioManager&) = delete;
        AudioManager(AudioManager&&) = delete;
        AudioManager& operator=(const AudioManager&) = delete;
        AudioManager& operator=(AudioManager&&) = delete;

        void Initialize();

        void Terminate();

        bool IsInitialized();

        void SetGlobalGain(float value);

        float GetGlobalGain();

      private:
        struct Impl;
        std::unique_ptr<Impl> impl;

        AudioManager();
        ~AudioManager();

        friend class Sound;
    };
}