refactor(core/audio): static_assert Audio::Group ↔ Ja::MAX_GROUPS (HC-03)
Ja::MAX_SIMULTANEOUS_CHANNELS i Ja::MAX_GROUPS són límits interns del motor. La proposta inicial era moure'ls a Defaults::Audio, però jail_audio és reutilitzable entre projectes (no depèn d'Options ni d'utils/); moure els límits trencaria aquesta independència. El valor real del hallazgo era la invariant Audio::Group ↔ MAX_GROUPS, que cap codi protegia. S'afegeix un static_assert a audio.cpp que falla en compilació si s'afegeix una entrada nova a Group sense tocar MAX_GROUPS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
deb0fc2a4b
commit
621d454563
2 files changed
+7
-1
No files matched your search
@@ -24,6 +24,12 @@
|
||||
#include "core/audio/jail_audio.hpp" // Para Ja::* (engine jailgames)
|
||||
#include "utils/defaults.hpp" // Para Defaults::Audio::FREQUENCY
|
||||
|
||||
// Invariant compile-time: tots els valors d'Audio::Group han de cabre als slots
|
||||
// de volum per grup que manté l'engine. Si s'afegeix una nova entrada a Group
|
||||
// i no s'incrementa Ja::MAX_GROUPS, aquest assert falla abans de compilar.
|
||||
static_assert(static_cast<int>(Audio::Group::INTERFACE) < Ja::MAX_GROUPS,
|
||||
"Audio::Group té més entrades que slots té Ja::MAX_GROUPS");
|
||||
|
||||
// Singleton
|
||||
std::unique_ptr<Audio> Audio::instance;
|
||||
|
||||
|
||||
Reference in new issue
Block a user