afegit resource::cache
normalitzat Audio
This commit is contained in:
@@ -1,22 +1,22 @@
|
||||
#include "scenes/scene_utils.hpp"
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
#include <string>
|
||||
|
||||
#include "core/jail/jail_audio.hpp"
|
||||
#include "core/resources/resource_helper.hpp"
|
||||
#include "core/audio/audio.hpp"
|
||||
|
||||
namespace scenes {
|
||||
|
||||
namespace {
|
||||
std::string basename(const char* path) {
|
||||
std::string s = path;
|
||||
auto pos = s.find_last_of("/\\");
|
||||
return pos == std::string::npos ? s : s.substr(pos + 1);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
void playMusic(const char* filename, int loop) {
|
||||
if (!filename) return;
|
||||
auto buffer = ResourceHelper::loadFile(filename);
|
||||
if (buffer.empty()) return;
|
||||
// JA_LoadMusic fa una còpia interna del OGG comprimit (via SDL_malloc)
|
||||
// per a stb_vorbis. El `buffer` local es destruirà en sortir d'àmbit.
|
||||
JA_PlayMusic(JA_LoadMusic(buffer.data(),
|
||||
static_cast<Uint32>(buffer.size()),
|
||||
filename),
|
||||
loop);
|
||||
Audio::get()->playMusic(basename(filename), loop);
|
||||
}
|
||||
|
||||
} // namespace scenes
|
||||
|
||||
Reference in New Issue
Block a user