#include "core/audio/audio.hpp" #include // Para SDL_GetError, SDL_Init #include // Para clamp #include // Para std::fprintf #include "core/audio/audio_adapter.hpp" // Para AudioResource::getMusic/getSound #include "core/audio/jail_audio.hpp" // Para Ja::* (motor jailgames) #include "core/audio/sound_effects_config.hpp" // Para SoundEffectsConfig #include "core/defaults.hpp" // Para Defaults::Audio::FREQUENCY // Invariant compile-time: tots los valors d'Audio::Group han de cabre als slots // de volum per grup que manté l'engine. Si s'afegeix una nueva entrada a Group // y no s'incrementa Ja::MAX_GROUPS, este assert falla antes de compilar. static_assert(static_cast(Audio::Group::INTERFACE) < Ja::MAX_GROUPS, "Audio::Group té més entrades que slots té Ja::MAX_GROUPS"); // Singleton std::unique_ptr