mirror of
https://github.com/ckaczor/WorkIndicator.git
synced 2026-01-13 17:23:18 -05:00
Fix for release build optimizations
This commit is contained in:
@@ -16,11 +16,15 @@ namespace WorkIndicator
|
||||
|
||||
public static event MicrophoneInUseChangedDelegate MicrophoneInUseChanged;
|
||||
|
||||
private static Thread _thread;
|
||||
|
||||
private static readonly List<AudioSessionManager2> _sessionManagers = new List<AudioSessionManager2>();
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
_manualResetEvent = new ManualResetEvent(false);
|
||||
|
||||
var thread = new Thread(delegate ()
|
||||
_thread = new Thread(delegate ()
|
||||
{
|
||||
var deviceEnumerator = new MMDeviceEnumerator();
|
||||
|
||||
@@ -28,6 +32,8 @@ namespace WorkIndicator
|
||||
{
|
||||
var sessionManager = AudioSessionManager2.FromMMDevice(device);
|
||||
|
||||
_sessionManagers.Add(sessionManager);
|
||||
|
||||
var sessionEnumerator = sessionManager.GetSessionEnumerator();
|
||||
|
||||
sessionManager.SessionCreated += (sessionSender, sessionCreatedEventArgs) => HandleDeviceSession(device, sessionCreatedEventArgs.NewSession);
|
||||
@@ -41,8 +47,8 @@ namespace WorkIndicator
|
||||
_manualResetEvent.WaitOne();
|
||||
});
|
||||
|
||||
thread.SetApartmentState(ApartmentState.MTA);
|
||||
thread.Start();
|
||||
_thread.SetApartmentState(ApartmentState.MTA);
|
||||
_thread.Start();
|
||||
}
|
||||
|
||||
private static void HandleDeviceSession(MMDevice device, AudioSessionControl audioSessionControl)
|
||||
@@ -60,6 +66,8 @@ namespace WorkIndicator
|
||||
|
||||
public static void Stop()
|
||||
{
|
||||
_sessionManagers.Clear();
|
||||
|
||||
_manualResetEvent?.Set();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user