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:
1 parent
256a232a95
commit
893e5b27e4
3 files changed
+15
-12
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user