Files
fn_registry/cpp/vendor/miniaudio.VENDORING.md
T

2.1 KiB

miniaudio vendoring

  • Source: https://github.com/mackron/miniaudio
  • Version pinned: see cpp/vendor/miniaudio/.version (0.11.25 at vendoring time)
  • License: Public domain / MIT-0 dual (cpp/vendor/miniaudio/LICENSE)
  • Header: cpp/vendor/miniaudio/miniaudio.h (~4 MB texto, ~200 KB compilado strippable)

Vendoring command

mkdir -p cpp/vendor/miniaudio && cd cpp/vendor/miniaudio && \
TAG=$(curl -s https://api.github.com/repos/mackron/miniaudio/releases/latest | grep -m1 '"tag_name"' | cut -d'"' -f4) && \
curl -fsSL "https://raw.githubusercontent.com/mackron/miniaudio/$TAG/miniaudio.h" -o miniaudio.h && \
curl -fsSL "https://raw.githubusercontent.com/mackron/miniaudio/$TAG/LICENSE" -o LICENSE && \
echo "$TAG" > .version

Por qué miniaudio

  • Single-header. Encaja con cultura del registry.
  • Cubre TODAS las plataformas del stack gamedev (issue 0072): Win (WASAPI/DirectSound), Mac (CoreAudio), Linux (PulseAudio/ALSA/JACK), Android (AAudio/OpenSL ES), iOS (CoreAudio), Emscripten (Web Audio).
  • Sin dependencias externas.
  • API C limpia, facil de wrappear como funciones del registry.
  • Decode wav/flac nativo. mp3 + ogg vorbis vienen via dependencias single-header opcionales (stb_vorbis.c, dr_mp3.h) o se enchufan como callback custom.

Compilacion

miniaudio.h se incluye con #define MINIAUDIO_IMPLEMENTATION exactamente en UNA TU. Para apps que solo quieran la API, incluir sin el define.

Convencion del registry: la funcion audio_init_cpp_gamedev define MINIAUDIO_IMPLEMENTATION en su .cpp. Otras funciones del registry y consumidores solo incluyen miniaudio.h sin el define.

Backends en WASM

Bajo emscripten, miniaudio usa Web Audio API. Requiere user gesture para arrancar (navigator.userActivation). Documentar en cpp/GAMEDEV.md: el primer click del usuario activa el audio context.

Upgrade

cd cpp/vendor/miniaudio
TAG=$(curl -s https://api.github.com/repos/mackron/miniaudio/releases/latest | grep -m1 '"tag_name"' | cut -d'"' -f4)
curl -fsSL "https://raw.githubusercontent.com/mackron/miniaudio/$TAG/miniaudio.h" -o miniaudio.h
echo "$TAG" > .version