refactor(core/audio): helper effectiveVolume compartit (DUP-02)

setSoundVolume i setMusicVolume repetien la mateixa lògica de clamp +
gate (enabled_ && channel_enabled_) + multiplicació pel master
config_.volume. S'extreu effectiveVolume(volume, channel_enabled) privat
i els dos setters es limiten a la crida Ja::*.

Any canvi futur a la política (p.ex. una corba logarítmica) queda en un
sol lloc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
JailDesignerandClaude Opus 4.7 committed 2026-04-20 12:01:06 +02:00
1 parent 256a232a95
commit 893e5b27e4
3 files changed
+15 -12

No files matched your search

+4 -3
View File
@@ -124,9 +124,10 @@ class Audio {
};
// --- Métodos ---
explicit Audio(const Config& config); // Constructor privat: rep la config
void initSDLAudio(); // Inicializa SDL Audio
void playMusicInternal(Ja::Music* music, int loop, int crossfade_ms); // Camí comú dels dos overloads de playMusic
explicit Audio(const Config& config); // Constructor privat: rep la config
void initSDLAudio(); // Inicializa SDL Audio
void playMusicInternal(Ja::Music* music, int loop, int crossfade_ms); // Camí comú dels dos overloads de playMusic
[[nodiscard]] auto effectiveVolume(float volume, bool channel_enabled) const -> float; // Gate master+channel: 0 si algun està off, clamp 0..1 altrament
// --- Variables miembro ---
static std::unique_ptr<Audio> instance; // Instància única d'Audio