diff --git a/docs/audit-core-audio.md b/docs/audit-core-audio.md index 493574a..cf1a506 100644 --- a/docs/audit-core-audio.md +++ b/docs/audit-core-audio.md @@ -70,7 +70,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas | |----|---------------|----------|-----------|--------|-------| -| INCONS-01 | `audio.cpp:128,135,142,149,172,180` | Métodos `const` que mutan globals de `Ja` (const miente) | Importante | PENDING | Quitar `const`; propagar a la declaración | +| INCONS-01 | `audio.cpp:128,135,142,149,172,180` | Métodos `const` que mutan globals de `Ja` (const miente) | Importante | DONE | `const` tret de 6 mètodes (`playSound` x2, `stopAllSounds`, `fadeOutMusic`, `setSoundVolume`, `setMusicVolume`). `effectiveVolume` es queda `const` (pur sobre membres). Cap caller extern via `const Audio*` | | INCONS-02 | `audio.hpp:44-48` + `jail_audio.hpp:44-50` | Dos `MusicState` paralelos + `getRealMusicState` como puente | Importante | PENDING | Un enum único; eliminar `getRealMusicState` | | INCONS-03 | `audio.cpp` varios | Comentarios mezclan catalán y español | Menor | PENDING | Unificar a catalán | | INCONS-04 | `audio.hpp:70,78` | `playMusic` `loop=-1` vs `playSound` `loop=0` | Menor | WONTFIX | Convención razonable (música loop / sonido one-shot); documentar | diff --git a/source/core/audio/audio.cpp b/source/core/audio/audio.cpp index 989337e..74caac1 100644 --- a/source/core/audio/audio.cpp +++ b/source/core/audio/audio.cpp @@ -129,28 +129,32 @@ void Audio::stopMusic() { } // Reproduce un sonido por nombre -void Audio::playSound(const std::string& name, Group group) const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta globals de Ja::channels +void Audio::playSound(const std::string& name, Group group) { if (sound_enabled_) { Ja::playSound(AudioResource::getSound(name), 0, static_cast(group)); } } // Reproduce un sonido por puntero directo -void Audio::playSound(Ja::Sound* sound, Group group) const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta globals de Ja::channels +void Audio::playSound(Ja::Sound* sound, Group group) { if (sound_enabled_ && sound != nullptr) { Ja::playSound(sound, 0, static_cast(group)); } } // Detiene todos los sonidos -void Audio::stopAllSounds() const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta globals de Ja::channels +void Audio::stopAllSounds() { if (sound_enabled_) { Ja::stopChannel(-1); } } // Realiza un fundido de salida de la música -void Audio::fadeOutMusic(int milliseconds) const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta Ja::outgoing_music/incoming_fade +void Audio::fadeOutMusic(int milliseconds) { if (music_enabled_ && getRealMusicState() == MusicState::PLAYING) { Ja::fadeOutMusic(milliseconds); } @@ -181,12 +185,14 @@ auto Audio::effectiveVolume(float volume, bool channel_enabled) const -> float { } // Estableix el volum dels sons (float 0.0..1.0) -void Audio::setSoundVolume(float sound_volume, Group group) const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta Ja::sound_volume[] i canals actius +void Audio::setSoundVolume(float sound_volume, Group group) { Ja::setSoundVolume(effectiveVolume(sound_volume, sound_enabled_), static_cast(group)); } // Estableix el volum de la música (float 0.0..1.0) -void Audio::setMusicVolume(float music_volume) const { +// NOLINTNEXTLINE(readability-make-member-function-const) — muta Ja::music_volume i stream actual +void Audio::setMusicVolume(float music_volume) { Ja::setMusicVolume(effectiveVolume(music_volume, music_enabled_)); } diff --git a/source/core/audio/audio.hpp b/source/core/audio/audio.hpp index ca6c1dd..ebcc57e 100644 --- a/source/core/audio/audio.hpp +++ b/source/core/audio/audio.hpp @@ -69,16 +69,16 @@ class Audio { void pauseMusic(); // Pausar reproducción de música void resumeMusic(); // Continua la música pausada void stopMusic(); // Detener completamente la música - void fadeOutMusic(int milliseconds) const; // Fundido de salida de la música + void fadeOutMusic(int milliseconds); // Fundido de salida de la música (muta globals de Ja) // --- Control de sonidos --- - void playSound(const std::string& name, Group group = Group::GAME) const; // Reproducir sonido puntual por nombre - void playSound(Ja::Sound* sound, Group group = Group::GAME) const; // Reproducir sonido puntual por puntero - void stopAllSounds() const; // Detener todos los sonidos + void playSound(const std::string& name, Group group = Group::GAME); // Reproducir sonido puntual por nombre (muta globals de Ja) + void playSound(Ja::Sound* sound, Group group = Group::GAME); // Reproducir sonido puntual por puntero (muta globals de Ja) + void stopAllSounds(); // Detener todos los sonidos (muta globals de Ja) // --- Control de volumen (API interna: float 0.0..1.0) --- - void setSoundVolume(float volume, Group group = Group::ALL) const; // Ajustar volumen de efectos - void setMusicVolume(float volume) const; // Ajustar volumen de música + void setSoundVolume(float volume, Group group = Group::ALL); // Ajustar volumen de efectos + void setMusicVolume(float volume); // Ajustar volumen de música // --- Helpers de conversió per a la capa de presentació --- // UI (menús, notificacions) manega enters 0..100; internament viu float 0..1.