Files
fn_registry/cpp/functions/gamedev/audio_engine.md
T

2.2 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, example, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports example tested tests test_file_path file_path params output
audio_engine function cpp gamedev 0.1.0 impure engine_init() -> Engine; engine_shutdown(Engine&); engine_set_volume(Engine&, float) Lifecycle del engine de audio basado en miniaudio (single-header, public domain). Inicializa device default, expone master volume, y libera recursos. Cross-platform: Windows/Linux/macOS via WASAPI/ALSA/CoreAudio y WebAudio bajo emscripten. Issue 0072b — runtime gamedev nucleo. Esta TU es la unica del proyecto que define MINIAUDIO_IMPLEMENTATION.
gamedev
audio
miniaudio
false error_go_core
fn::audio::Engine eng = fn::audio::engine_init(); if (!eng.ok) { /* fallback silencioso */ } fn::audio::engine_set_volume(eng, 0.8f); // ... loop principal ... fn::audio::engine_shutdown(eng); false
cpp/functions/gamedev/audio_engine.cpp
name desc
e Engine handle. ok=true tras engine_init exitoso. Estructura opaca: impl apunta a ma_engine internamente.
name desc
v Volumen master 0..1 (lineal). Valores >1 amplifican (riesgo de clipping).
Engine con impl=ma_engine* y ok=true si MA_SUCCESS, ok=false en cualquier fallo (malloc o init de miniaudio). engine_shutdown deja ok=false e impl=nullptr — llamadas posteriores son no-op seguros.

audio_engine

Wrapper minimo del engine de miniaudio (v0.11.25, single-header, public domain / MIT-0). Vendored en cpp/vendor/miniaudio/.

Por que

Audio cross-platform sin depender de SDL_mixer / OpenAL / FMOD. Compila en Windows/Linux/macOS y WASM (emscripten) desde el mismo source. Sin excepciones, sin RTTI, sin std::string.

Notas

  • Estado de fallo se reporta via Engine.ok=false. No hay error_type porque no devolvemos error_go_core-style; el consumidor revisa ok antes de operar.
  • MINIAUDIO_IMPLEMENTATION se define UNICAMENTE en audio_engine.cpp. Otras TU que usen miniaudio deben hacer solo #include "miniaudio.h".
  • Memoria via malloc/free (no new) para mantener compat con -fno-exceptions.