#pragma once #ifndef ES_CORE_AUDIO_MANAGER_H #define ES_CORE_AUDIO_MANAGER_H #include #include #include class Sound; class AudioManager { static SDL_AudioSpec sAudioFormat; static std::vector> sSoundVector; static std::shared_ptr sInstance; static void mixAudio(void *unused, Uint8 *stream, int len); AudioManager(); public: static std::shared_ptr & getInstance(); void init(); void deinit(); void registerSound(std::shared_ptr & sound); void unregisterSound(std::shared_ptr & sound); void play(); void stop(); virtual ~AudioManager(); }; #endif // ES_CORE_AUDIO_MANAGER_H