cb6d9e61d1
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
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