From 6f0626c31f595d20061eaaddc9af315fd96bdb38 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 20 Apr 2026 11:47:40 +0200 Subject: [PATCH] refactor(core/audio): moure constants UI/tuning a Defaults::Audio (HC-01) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VOLUME_STEP, FREQUENCY i DEFAULT_CROSSFADE_MS vivien com a membres constexpr d'Audio. Eren valors de configuració — no invariants de la classe — i la convenció del projecte és que tots els paràmetres ajustables visquin a utils/defaults.hpp. Passen a Defaults::Audio::{VOLUME_STEP, FREQUENCY, CROSSFADE_MS}. L'únic ús intern (Ja::init al constructor d'Audio) es reapunta al Defaults. Cap ús extern dels tres símbols. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/audit-core-audio.md | 4 ++-- source/core/audio/audio.cpp | 3 ++- source/core/audio/audio.hpp | 7 ++----- source/utils/defaults.hpp | 3 +++ 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/audit-core-audio.md b/docs/audit-core-audio.md index f047e4d..f276410 100644 --- a/docs/audit-core-audio.md +++ b/docs/audit-core-audio.md @@ -21,7 +21,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | COUP-01 | Encapsular globals `Ja::` en clase (engine sin estado global) | PENDING | | HC-02 | Formato/canales/freq hardcodeado en 3+ sitios | PENDING | | INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | PENDING | -| HC-01 | Parámetros de audio no configurables (viola convención del proyecto) | PENDING | +| HC-01 | Parámetros de audio no configurables (viola convención del proyecto) | DONE | | PATCH-01 | `toggleEnabled/toggleSound/toggleMusic` no reaplican volumen | PENDING | --- @@ -40,7 +40,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas | |----|---------------|----------|-----------|--------|-------| -| HC-01 | `audio.hpp:53-55` | `VOLUME_STEP`, `FREQUENCY`, `DEFAULT_CROSSFADE_MS` viven en la clase, no en `Defaults::Audio` | Importante | PENDING | Mover a `utils/defaults.hpp` | +| HC-01 | `audio.hpp:53-55` | `VOLUME_STEP`, `FREQUENCY`, `DEFAULT_CROSSFADE_MS` viven en la clase, no en `Defaults::Audio` | Importante | DONE | Movidos a `Defaults::Audio::{VOLUME_STEP, FREQUENCY, CROSSFADE_MS}` en `utils/defaults.hpp` | | 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 | PENDING | Constantes `DEFAULT_FORMAT/CHANNELS/FREQ` compartidas | | HC-03 | `jail_audio.hpp:53-54` | `MAX_SIMULTANEOUS_CHANNELS=20`, `MAX_GROUPS=2` fijos sin justificación | Menor | PENDING | `Defaults::Audio::MAX_CHANNELS/MAX_GROUPS` + `static_assert` | | HC-04 | `jail_audio.hpp:131,134` | `MUSIC_CHUNK_SHORTS=8192`, `MUSIC_LOW_WATER_SECONDS=0.5F` tuning hidden | Menor | PENDING | Mover a `Defaults::Audio` | diff --git a/source/core/audio/audio.cpp b/source/core/audio/audio.cpp index 0dee24f..8ffbd94 100644 --- a/source/core/audio/audio.cpp +++ b/source/core/audio/audio.cpp @@ -22,6 +22,7 @@ #include "core/audio/audio_adapter.hpp" // Para AudioResource::getMusic/getSound #include "core/audio/jail_audio.hpp" // Para Ja::* (engine jailgames) +#include "utils/defaults.hpp" // Para Defaults::Audio::FREQUENCY // Singleton std::unique_ptr