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 |
|
||||
| INCONS-02 | Doble `MusicState` + `getRealMusicState` como cache paralelo | PENDING |
|
||||
| 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 |
|
||||
|----|---------------|----------|-----------|--------|-------|
|
||||
| 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-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 |
|
||||
|
||||
@@ -207,6 +207,20 @@ void Audio::enable(bool value) {
|
||||
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
|
||||
void Audio::initSDLAudio() {
|
||||
if (!SDL_Init(SDL_INIT_AUDIO)) {
|
||||
|
||||
+11
-11
@@ -91,21 +91,21 @@ class Audio {
|
||||
}
|
||||
|
||||
// --- Configuración general ---
|
||||
void enable(bool value); // Establecer estado general
|
||||
void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general
|
||||
void applySettings(const Config& config); // Aplica una nova configuració
|
||||
void enable(bool value); // Establecer estado general (reaplica volums)
|
||||
void toggleEnabled() { enable(!enabled_); } // Alternar estado general (reaplica volums)
|
||||
void applySettings(const Config& config); // Aplica una nova configuració
|
||||
|
||||
// --- Configuración de sonidos ---
|
||||
void enableSound() { sound_enabled_ = true; } // Habilitar sonidos
|
||||
void disableSound() { sound_enabled_ = false; } // Deshabilitar sonidos
|
||||
void enableSound(bool value) { sound_enabled_ = value; } // Establecer estado de sonidos
|
||||
void toggleSound() { sound_enabled_ = !sound_enabled_; } // Alternar estado de sonidos
|
||||
void enableSound() { enableSound(true); } // Habilitar sonidos
|
||||
void disableSound() { enableSound(false); } // Deshabilitar sonidos
|
||||
void enableSound(bool value); // Establecer estado de sonidos (reaplica volum)
|
||||
void toggleSound() { enableSound(!sound_enabled_); } // Alternar estado de sonidos (reaplica volum)
|
||||
|
||||
// --- Configuración de música ---
|
||||
void enableMusic() { music_enabled_ = true; } // Habilitar música
|
||||
void disableMusic() { music_enabled_ = false; } // Deshabilitar música
|
||||
void enableMusic(bool value) { music_enabled_ = value; } // Establecer estado de música
|
||||
void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música
|
||||
void enableMusic() { enableMusic(true); } // Habilitar música
|
||||
void disableMusic() { enableMusic(false); } // Deshabilitar música
|
||||
void enableMusic(bool value); // Establecer estado de música (reaplica volum)
|
||||
void toggleMusic() { enableMusic(!music_enabled_); } // Alternar estado de música (reaplica volum)
|
||||
|
||||
// --- Consultas de estado ---
|
||||
[[nodiscard]] auto isEnabled() const -> bool { return enabled_; }
|
||||
|
||||
Reference in new issue
Block a user