diff --git a/include/utils/Audio/Audio.h b/include/utils/Audio/Audio.h index 8747e91..983befb 100644 --- a/include/utils/Audio/Audio.h +++ b/include/utils/Audio/Audio.h @@ -1,6 +1,8 @@ #ifndef AUDIO_H #define AUDIO_H +#include "pch.hpp" + #include #include @@ -10,10 +12,38 @@ namespace Archimedes { public: - Audio() {} + Audio() { + if(!SDL_Init(SDL_INIT_AUDIO)) { - ~Audio() {} + std::abort(); + } + pDevices = SDL_GetAudioPlaybackDevices(&pDeviceCount); + rDevices = SDL_GetAudioPlaybackDevices(&rDeviceCount); + } + + ~Audio() { + + for(SDL_AudioStream* s : streams) { + DestroyAudioStream(s); + } + + SDL_QuitSubsystem(SDL_INIT_AUDIO); + } + + + private: + + SDL_AudioDeviceID* pDevices; + + int pDeviceCount = 0; + + SDL_AudioDeviceID* rDevices; + + int rDeviceCount = 0; + + std::vector streams; + std::vector specs; }; }