Fix for release build optimizations

This commit is contained in:
2021-12-22 10:14:51 -05:00
parent 18aae0cef3
commit a0eb5e3fbc

View File

@@ -16,11 +16,15 @@ namespace WorkIndicator
public static event MicrophoneInUseChangedDelegate MicrophoneInUseChanged; public static event MicrophoneInUseChangedDelegate MicrophoneInUseChanged;
private static Thread _thread;
private static readonly List<AudioSessionManager2> _sessionManagers = new List<AudioSessionManager2>();
public static void Start() public static void Start()
{ {
_manualResetEvent = new ManualResetEvent(false); _manualResetEvent = new ManualResetEvent(false);
var thread = new Thread(delegate () _thread = new Thread(delegate ()
{ {
var deviceEnumerator = new MMDeviceEnumerator(); var deviceEnumerator = new MMDeviceEnumerator();
@@ -28,6 +32,8 @@ namespace WorkIndicator
{ {
var sessionManager = AudioSessionManager2.FromMMDevice(device); var sessionManager = AudioSessionManager2.FromMMDevice(device);
_sessionManagers.Add(sessionManager);
var sessionEnumerator = sessionManager.GetSessionEnumerator(); var sessionEnumerator = sessionManager.GetSessionEnumerator();
sessionManager.SessionCreated += (sessionSender, sessionCreatedEventArgs) => HandleDeviceSession(device, sessionCreatedEventArgs.NewSession); sessionManager.SessionCreated += (sessionSender, sessionCreatedEventArgs) => HandleDeviceSession(device, sessionCreatedEventArgs.NewSession);
@@ -41,8 +47,8 @@ namespace WorkIndicator
_manualResetEvent.WaitOne(); _manualResetEvent.WaitOne();
}); });
thread.SetApartmentState(ApartmentState.MTA); _thread.SetApartmentState(ApartmentState.MTA);
thread.Start(); _thread.Start();
} }
private static void HandleDeviceSession(MMDevice device, AudioSessionControl audioSessionControl) private static void HandleDeviceSession(MMDevice device, AudioSessionControl audioSessionControl)
@@ -60,6 +66,8 @@ namespace WorkIndicator
public static void Stop() public static void Stop()
{ {
_sessionManagers.Clear();
_manualResetEvent?.Set(); _manualResetEvent?.Set();
} }