mirror of
https://github.com/ckaczor/WorkIndicator.git
synced 2026-01-14 01:25:45 -05:00
Fix for release build optimizations
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user