audio: clear mixer routes on destruction

This commit is contained in:
2026-04-14 16:48:39 +08:00
parent ee03f7035b
commit a4c48c1b3f
6 changed files with 241 additions and 8 deletions

View File

@@ -218,6 +218,29 @@ TEST(AudioSystem, ListenerReverbMixerReceivesSend) {
system.Shutdown();
}
TEST(AudioSystem, DestroyingMixerClearsDependentRoutes) {
AudioSystem& system = AudioSystem::Get();
system.Shutdown();
AudioSourceComponent source;
AudioListenerComponent listener;
auto parentMixer = std::make_unique<AudioMixer>();
auto childMixer = std::make_unique<AudioMixer>();
source.SetOutputMixer(parentMixer.get());
listener.SetReverb(parentMixer.get());
childMixer->SetOutputMixer(parentMixer.get());
parentMixer.reset();
EXPECT_EQ(source.GetOutputMixer(), nullptr);
EXPECT_EQ(listener.GetReverb(), nullptr);
EXPECT_EQ(system.GetListenerReverbMixer(), nullptr);
EXPECT_EQ(childMixer->GetOutputMixer(), nullptr);
system.Shutdown();
}
TEST(AudioSystem, ListenerComponentPublishesVelocityAndDopplerSettings) {
AudioSystem& system = AudioSystem::Get();
system.Shutdown();