From 3089177e6965c217069d4f2bb9f85ec6a03a963a Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 20 Apr 2026 12:22:41 +0200 Subject: [PATCH] refactor(core/audio): eliminar 5 funcions mortes a Ja:: (DEAD-01..04, PATCH-04) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verificat amb grep que cap caller dins de source/ invoca: - Ja::setMusicPosition (stub no-op) - Ja::getMusicPosition (stub que retornava 0) - Ja::getMusicFilename (accessor a Music::filename, el camp s'accedeix directament des d'Audio) - Ja::getChannelState (getter sense consumidor públic) - Ja::setVolume (combinació master — Audio fa el gate per canal) Es manté loadMusic(buffer, length, filename) perquè Resource::Cache l'utilitza per registrar el path dins del Ja::Music. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/audit-core-audio.md | 10 +++++----- source/core/audio/jail_audio.hpp | 32 +++----------------------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/docs/audit-core-audio.md b/docs/audit-core-audio.md index 6a6fe0f..8294c07 100644 --- a/docs/audit-core-audio.md +++ b/docs/audit-core-audio.md @@ -53,7 +53,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | PATCH-01 | `audio.hpp:98,105,111` | `toggleEnabled/toggleSound/toggleMusic` sólo flipan el flag; no reaplican volúmenes | Importante | DONE | `toggle*()` i variants sense bool passen per `enable[Sound|Music](bool)`. Aquestes funcions ara reapliquen el volum cap a `Ja::` perquè els canals actius responguin al toggle | | PATCH-02 | `audio.cpp:98` | `music_.name.clear()` en overload por puntero → `getCurrentMusicName()` miente | Importante | DONE | `music_.name = music->filename`. Si `Ja::Music` va ser carregat amb filename, `getCurrentMusicName()` ara retorna el nom correcte; si no, queda buit (contracte explícit) | | PATCH-03 | `audio.cpp:14-21` | `#undef L,C,R,PLAYBACK_*` workaround para macros filtradas por stb_vorbis | Importante | WONTFIX | Documentado; aislar stb_vorbis en TU propio sería más invasivo — se hará con COUP-01 | -| PATCH-04 | `jail_audio.hpp:501-507` | `setMusicPosition`/`getMusicPosition` stubs no-op | Importante | PENDING | Borrar si nadie los llama | +| PATCH-04 | `jail_audio.hpp:501-507` | `setMusicPosition`/`getMusicPosition` stubs no-op | Importante | DONE | Eliminats (veure DEAD-01) | | PATCH-05 | `jail_audio.hpp:532-535` | "No hay canal libre → canal 0" robo de voz arbitrario | Importante | DEFERRED | Política de voice-stealing es una feature; se documenta | ## 4. Acoplamiento innecesario @@ -80,10 +80,10 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic | ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas | |----|---------------|----------|-----------|--------|-------| -| DEAD-01 | `jail_audio.hpp:501-507` | `setMusicPosition`/`getMusicPosition` stubs | Importante | PENDING | Verificar grep y borrar (= PATCH-04) | -| DEAD-02 | `jail_audio.hpp:671-675` | `Ja::setVolume` master no usado desde `Audio` | Menor | PENDING | Borrar si nadie lo llama | -| DEAD-03 | `jail_audio.hpp:346-350` | `getMusicFilename` presunto unused | Menor | PENDING | Verificar y borrar | -| DEAD-04 | `jail_audio.hpp:633-638` | `getChannelState` sin getter público en `Audio` | Menor | PENDING | Verificar y borrar | +| DEAD-01 | `jail_audio.hpp:501-507` | `setMusicPosition`/`getMusicPosition` stubs | Importante | DONE | Eliminats; cap caller | +| DEAD-02 | `jail_audio.hpp:671-675` | `Ja::setVolume` master no usado desde `Audio` | Menor | DONE | Eliminat; Audio fa el gate per canal | +| DEAD-03 | `jail_audio.hpp:346-350` | `getMusicFilename` presunto unused | Menor | DONE | Eliminat; `Ja::Music::filename` s'accedeix directe (PATCH-02) | +| DEAD-04 | `jail_audio.hpp:633-638` | `getChannelState` sin getter público en `Audio` | Menor | DONE | Eliminat | | DEAD-05 | `audio.hpp:102-103` | `enableSound()`/`disableSound()` sin argumento (duplican la versión con bool) | Menor | PENDING | Cubierto por INCONS-05 | ## 7. Violaciones de convenciones diff --git a/source/core/audio/jail_audio.hpp b/source/core/audio/jail_audio.hpp index 0bed69e..94b84cb 100644 --- a/source/core/audio/jail_audio.hpp +++ b/source/core/audio/jail_audio.hpp @@ -318,8 +318,9 @@ namespace Ja { return music.release(); } - // Overload amb filename — els callers l'usen per poder comparar la música - // en curs amb getMusicFilename() i no rearrancar-la si ja és la mateixa. + // Overload amb filename. Resource::Cache l'usa per registrar el path dins + // del propi Ja::Music (camp `filename`); la capa Audio l'usa per recuperar + // el nom després d'un playMusic(Ja::Music*, ...) — veure PATCH-02. inline auto loadMusic(const Uint8* buffer, Uint32 length, const char* filename) -> Music* { Music* music = loadMusic(buffer, length); if (music != nullptr && filename != nullptr) { music->filename = filename; } @@ -355,12 +356,6 @@ namespace Ja { } } - inline auto getMusicFilename(const Music* music = nullptr) -> const char* { - if (music == nullptr) { music = current_music; } - if (music == nullptr || music->filename.empty()) { return nullptr; } - return music->filename.c_str(); - } - inline void pauseMusic() { if (!music_enabled) { return; } if (current_music == nullptr || current_music->state != MusicState::PLAYING) { return; } @@ -495,14 +490,6 @@ namespace Ja { return music_volume; } - inline void setMusicPosition(float /*value*/) { - // No implementat amb el backend de streaming. - } - - inline auto getMusicPosition() -> float { - return 0.0F; - } - inline void enableMusic(const bool value) { if (!value && current_music != nullptr && (current_music->state == MusicState::PLAYING)) { stopMusic(); } music_enabled = value; @@ -613,13 +600,6 @@ namespace Ja { }); } - inline auto getChannelState(const int channel) -> ChannelState { - if (!sound_enabled) { return ChannelState::SOUND_DISABLED; } - if (channel < 0 || channel >= MAX_SIMULTANEOUS_CHANNELS) { return ChannelState::INVALID; } - - return channels[channel].state; - } - inline auto setSoundVolume(float volume, const int group = -1) -> float { const float V = SDL_clamp(volume, 0.0F, 1.0F); @@ -651,10 +631,4 @@ namespace Ja { sound_enabled = value; } - inline auto setVolume(float volume) -> float { - const float V = setMusicVolume(volume); - setSoundVolume(V, -1); - return V; - } - } // namespace Ja