fix(core/audio): toggle* i enable[Sound|Music] reapliquen volum (PATCH-01)
Abans, toggleEnabled/toggleSound/toggleMusic i les variants sense bool
només flipaven el flag intern; els canals actius no notaven el canvi
fins a la pròxima crida explícita a setSoundVolume/setMusicVolume —
silenciós i fàcil de perdre.
Ara:
- toggleEnabled passa per enable(bool), que ja reaplicava els volums.
- enableSound(bool) i enableMusic(bool) es mouen a audio.cpp i
reapliquen el volum gated cap a Ja::*.
- Les variants enableSound()/disableSound()/enableMusic()/disableMusic()
i els toggles passen per aquestes dues funcions, així que qualsevol
camí d'activació produeix el mateix efecte sobre l'estat sonor.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
92f38bc51c
commit
a6cd12a944
3 files changed
+27
-13
No files matched your search
@@ -22,7 +22,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
|||||||
| HC-02 | Formato/canales/freq hardcodeado en 3+ sitios | DONE |
|
| HC-02 | Formato/canales/freq hardcodeado en 3+ sitios | DONE |
|
||||||
| INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | PENDING |
|
| INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | PENDING |
|
||||||
| HC-01 | Parámetros de audio no configurables (viola convención del proyecto) | DONE |
|
| HC-01 | Parámetros de audio no configurables (viola convención del proyecto) | DONE |
|
||||||
| PATCH-01 | `toggleEnabled/toggleSound/toggleMusic` no reaplican volumen | PENDING |
|
| PATCH-01 | `toggleEnabled/toggleSound/toggleMusic` no reaplican volumen | DONE |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ Los IDs se mantienen estables una vez asignados. Cada entrada apunta al(los) fic
|
|||||||
|
|
||||||
| ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas |
|
| ID | Fichero:línea | Hallazgo | Severidad | Estado | Notas |
|
||||||
|----|---------------|----------|-----------|--------|-------|
|
|----|---------------|----------|-----------|--------|-------|
|
||||||
| PATCH-01 | `audio.hpp:98,105,111` | `toggleEnabled/toggleSound/toggleMusic` sólo flipan el flag; no reaplican volúmenes | Importante | PENDING | Llamar a `enable(!enabled_)` y equivalentes |
|
| 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 | PENDING | Derivar nombre de `Ja::Music::filename` |
|
| PATCH-02 | `audio.cpp:98` | `music_.name.clear()` en overload por puntero → `getCurrentMusicName()` miente | Importante | PENDING | Derivar nombre de `Ja::Music::filename` |
|
||||||
| 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-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 | PENDING | Borrar si nadie los llama |
|
||||||
|
|||||||
@@ -207,6 +207,20 @@ void Audio::enable(bool value) {
|
|||||||
setMusicVolume(enabled_ ? config_.music_volume : MIN_VOLUME);
|
setMusicVolume(enabled_ ? config_.music_volume : MIN_VOLUME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Estableix l'estat dels sons i reaplica el volum perquè els canals actius
|
||||||
|
// responguin a l'instant (evita que el toggle només surti efecte al pròxim
|
||||||
|
// setSoundVolume explícit).
|
||||||
|
void Audio::enableSound(bool value) {
|
||||||
|
sound_enabled_ = value;
|
||||||
|
setSoundVolume(config_.sound_volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Estableix l'estat de la música i reaplica el volum per la mateixa raó.
|
||||||
|
void Audio::enableMusic(bool value) {
|
||||||
|
music_enabled_ = value;
|
||||||
|
setMusicVolume(config_.music_volume);
|
||||||
|
}
|
||||||
|
|
||||||
// Inicialitza SDL Audio
|
// Inicialitza SDL Audio
|
||||||
void Audio::initSDLAudio() {
|
void Audio::initSDLAudio() {
|
||||||
if (!SDL_Init(SDL_INIT_AUDIO)) {
|
if (!SDL_Init(SDL_INIT_AUDIO)) {
|
||||||
|
|||||||
+11
-11
@@ -91,21 +91,21 @@ class Audio {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --- Configuración general ---
|
// --- Configuración general ---
|
||||||
void enable(bool value); // Establecer estado general
|
void enable(bool value); // Establecer estado general (reaplica volums)
|
||||||
void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general
|
void toggleEnabled() { enable(!enabled_); } // Alternar estado general (reaplica volums)
|
||||||
void applySettings(const Config& config); // Aplica una nova configuració
|
void applySettings(const Config& config); // Aplica una nova configuració
|
||||||
|
|
||||||
// --- Configuración de sonidos ---
|
// --- Configuración de sonidos ---
|
||||||
void enableSound() { sound_enabled_ = true; } // Habilitar sonidos
|
void enableSound() { enableSound(true); } // Habilitar sonidos
|
||||||
void disableSound() { sound_enabled_ = false; } // Deshabilitar sonidos
|
void disableSound() { enableSound(false); } // Deshabilitar sonidos
|
||||||
void enableSound(bool value) { sound_enabled_ = value; } // Establecer estado de sonidos
|
void enableSound(bool value); // Establecer estado de sonidos (reaplica volum)
|
||||||
void toggleSound() { sound_enabled_ = !sound_enabled_; } // Alternar estado de sonidos
|
void toggleSound() { enableSound(!sound_enabled_); } // Alternar estado de sonidos (reaplica volum)
|
||||||
|
|
||||||
// --- Configuración de música ---
|
// --- Configuración de música ---
|
||||||
void enableMusic() { music_enabled_ = true; } // Habilitar música
|
void enableMusic() { enableMusic(true); } // Habilitar música
|
||||||
void disableMusic() { music_enabled_ = false; } // Deshabilitar música
|
void disableMusic() { enableMusic(false); } // Deshabilitar música
|
||||||
void enableMusic(bool value) { music_enabled_ = value; } // Establecer estado de música
|
void enableMusic(bool value); // Establecer estado de música (reaplica volum)
|
||||||
void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música
|
void toggleMusic() { enableMusic(!music_enabled_); } // Alternar estado de música (reaplica volum)
|
||||||
|
|
||||||
// --- Consultas de estado ---
|
// --- Consultas de estado ---
|
||||||
[[nodiscard]] auto isEnabled() const -> bool { return enabled_; }
|
[[nodiscard]] auto isEnabled() const -> bool { return enabled_; }
|
||||||
|
|||||||
Reference in new issue
Block a user