@@ -102,7 +102,8 @@ public void RefreshMixers(int hardwareSampleRate)
102102 Console . WriteLine ( $ "[osu!] Oboe redirector initialized successfully: master={ masterMixer } , sources={ string . Join ( ',' , mixerHandles ) } ") ;
103103 }
104104
105- [ UnconditionalSuppressMessage ( "Trimming" , "IL2067, IL2070, IL2072, IL2075, IL2106" , Justification = "Preserved in Linker.xml" ) ]
105+ // Trimming warnings suppressed because AudioManager.ActiveMixers and related types are manually preserved in Linker.xml.
106+ [ UnconditionalSuppressMessage ( "Trimming" , "IL2067, IL2070, IL2072, IL2075, IL2080, IL2106" , Justification = "Preserved in Linker.xml" ) ]
106107 private IEnumerable < AudioMixer > getActiveMixers ( )
107108 {
108109 Type type = typeof ( AudioManager ) ;
@@ -125,6 +126,24 @@ private IEnumerable<AudioMixer> getActiveMixers()
125126 }
126127 }
127128 }
129+
130+ foreach ( var prop in type . GetProperties ( BindingFlags . Instance | BindingFlags . Public | BindingFlags . NonPublic ) )
131+ {
132+ if ( prop . CanRead && prop . PropertyType . IsGenericType && prop . PropertyType . GetGenericArguments ( ) . Contains ( typeof ( AudioMixer ) ) )
133+ {
134+ object ? val = prop . GetValue ( audioManager ) ;
135+ if ( val is IEnumerable enumerable )
136+ {
137+ foreach ( var item in enumerable )
138+ {
139+ if ( item is AudioMixer mixer )
140+ yield return mixer ;
141+ }
142+ yield break ;
143+ }
144+ }
145+ }
146+
128147 type = type . BaseType ! ;
129148 }
130149 }
@@ -279,7 +298,8 @@ private void addMixer(AudioMixer? mixer)
279298 mixerHandles . Add ( handle ) ;
280299 }
281300
282- [ UnconditionalSuppressMessage ( "Trimming" , "IL2067, IL2070, IL2072, IL2075, IL2106" , Justification = "Preserved in Linker.xml" ) ]
301+ // Trimming warnings suppressed because source handles (BASS mixer/stream/channel) are identified via reflection over types preserved in Linker.xml.
302+ [ UnconditionalSuppressMessage ( "Trimming" , "IL2067, IL2070, IL2072, IL2075, IL2080, IL2106" , Justification = "Preserved in Linker.xml" ) ]
283303 private int findHandle ( object obj )
284304 {
285305 Type ? type = obj . GetType ( ) ;
0 commit comments