#ifndef _H_AUDIO_ENGINE_H #define _H_AUDIO_ENGINE_H #include #include #include #include "utility/events.h" #include "sound/audiostream.h" #include "utility/resourcemanager.h" #include "utility/logger.h" class AudioEngine { public: AudioEngine(std::weak_ptr _resource); void hookEventManager(std::weak_ptr _events); void pushMusic(std::string _songName); void playMusic(); void pauseMusic(); void killMusic(); ~AudioEngine(); private: std::unique_ptr musicPlayer; std::weak_ptr globalEventManager; std::weak_ptr resourceManager; ALCdevice *device; ALCcontext *context; }; #endif // _H_AUDIO_ENGINE_H