// audio_play — reproducir sonidos one-shot y streaming sobre fn::audio::Engine. // Issue 0072b — runtime gamedev nucleo. #pragma once #include "audio_engine.h" namespace fn::audio { struct Sound { void* impl; // ma_sound* opaco bool ok; }; // Carga y prepara un sonido (decodifica streaming desde disco). Sound.ok=false si falla. Sound sound_load(Engine& e, const char* path); // Arranca/reanuda reproduccion. void sound_play(Sound& s); // Detiene reproduccion (no libera). void sound_stop(Sound& s); // Volumen 0..1 del sonido (independiente del master). void sound_set_volume(Sound& s, float v); // Libera recursos del sonido. void sound_destroy(Sound& s); // Fire-and-forget: reproduce path una vez sin handle. No-op si engine no esta listo. void play_sound_oneshot(Engine& e, const char* path, float volume = 1.0f); } // namespace fn::audio