audio: clear mixer routes on destruction
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user