From 92f38bc51cd804946bda7f8f46073704d07b54ed Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 20 Apr 2026 11:54:53 +0200 Subject: [PATCH] refactor(core/audio): eliminar fill(0.5F) sobreescrit a Ja::init (HC-05) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sound_volume[] és un inline float[] amb zero-init per defecte i la capa Audio crida setSoundVolume(config_.sound_volume) via enable() just després de Ja::init, així que el fill(0.5F) no arribava mai a l'usuari. Era un valor màgic heretat. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/audit-core-audio.md | 2 +- source/core/audio/jail_audio.hpp | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/audit-core-audio.md b/docs/audit-core-audio.md index 68e4a71..45ad09e 100644 --- a/docs/audit-core-audio.md +++ b/docs/audit-core-audio.md @@ -44,7 +44,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | HC-02 | `jail_audio.hpp:57,76,110` + `audio.cpp:208` | `{SDL_AUDIO_S16, 2, 48000}` literal en 3 sitios; `S16LE` vs `S16` inconsistente | Importante | DONE | `Defaults::Audio::{FORMAT,CHANNELS,FREQUENCY}` al call-site d'`Audio::initSDLAudio`; `Ja::DEFAULT_SPEC` com a fallback local perquè l'engine no depengui del projecte | | HC-03 | `jail_audio.hpp:53-54` | `MAX_SIMULTANEOUS_CHANNELS=20`, `MAX_GROUPS=2` fijos sin justificación | Menor | DONE | `static_assert` a `audio.cpp` protegeix `Audio::Group ↔ Ja::MAX_GROUPS`. No es mou a Defaults — el motor és independent del projecte per disseny | | HC-04 | `jail_audio.hpp:131,134` | `MUSIC_CHUNK_SHORTS=8192`, `MUSIC_LOW_WATER_SECONDS=0.5F` tuning hidden | Menor | WONTFIX | Són tuning intern del streaming (vorbis + SDL stream). Ja són `inline constexpr` amb comentaris; moure-les a Defaults trencaria la independència del motor (mateix criteri que HC-03) | -| HC-05 | `jail_audio.hpp:266` | `fill(sound_volume, 0.5F)` valor mágico que se sobreescribe enseguida | Menor | PENDING | Eliminar o nombrar | +| HC-05 | `jail_audio.hpp:266` | `fill(sound_volume, 0.5F)` valor mágico que se sobreescribe enseguida | Menor | DONE | Eliminada la línia. El `inline float[]` zero-inicialitza i `Audio::initSDLAudio` sobreescriu immediatament via `enable()` | ## 3. Parches e improvisaciones diff --git a/source/core/audio/jail_audio.hpp b/source/core/audio/jail_audio.hpp index fd733f6..7a224ae 100644 --- a/source/core/audio/jail_audio.hpp +++ b/source/core/audio/jail_audio.hpp @@ -268,7 +268,6 @@ namespace Ja { sdl_audio_device = SDL_OpenAudioDevice(SDL_AUDIO_DEVICE_DEFAULT_PLAYBACK, &audio_spec); if (sdl_audio_device == 0) { std::cout << "Failed to initialize SDL audio!" << '\n'; } for (auto& channel : channels) { channel.state = ChannelState::FREE; } - std::ranges::fill(sound_volume, 0.5F); } inline void quit() {