diff --git a/CMakeLists.txt b/CMakeLists.txt index d11614f..234e381 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,8 @@ configure_file(${CMAKE_SOURCE_DIR}/source/version.h.in ${CMAKE_BINARY_DIR}/versi set(APP_SOURCES source/main.cpp source/core/system/director.cpp + source/core/audio/audio.cpp + source/core/audio/audio_adapter.cpp source/core/locale/locale.cpp source/core/input/key_config.cpp source/core/input/global_inputs.cpp diff --git a/data/music/pyramid_1.ogg b/data/music/pyramid_1.ogg new file mode 100644 index 0000000..05e8878 Binary files /dev/null and b/data/music/pyramid_1.ogg differ diff --git a/source/core/audio/audio.cpp b/source/core/audio/audio.cpp new file mode 100644 index 0000000..0dee24f --- /dev/null +++ b/source/core/audio/audio.cpp @@ -0,0 +1,213 @@ +#include "core/audio/audio.hpp" + +#include // Para SDL_GetError, SDL_Init + +#include // Para clamp +#include // Para std::cout + +// Implementació de stb_vorbis (ha d'anar ABANS d'incloure jail_audio.hpp). +// clang-format off +#undef STB_VORBIS_HEADER_ONLY +// NOLINTNEXTLINE(bugprone-suspicious-include) +#include "external/stb_vorbis.c" +// stb_vorbis.c filtra les macros L, C i R (i PLAYBACK_*) al TU. Les netegem +// perquè xocarien amb noms de paràmetres de plantilla en altres headers. +#undef L +#undef C +#undef R +#undef PLAYBACK_MONO +#undef PLAYBACK_LEFT +#undef PLAYBACK_RIGHT +// clang-format on + +#include "core/audio/audio_adapter.hpp" // Para AudioResource::getMusic/getSound +#include "core/audio/jail_audio.hpp" // Para Ja::* (engine jailgames) + +// Singleton +std::unique_ptr