Start modernization
# Conflicts: # .gitignore # App.xaml # App.xaml.cs # AudioWatcher.cs # Delcom/DeviceManagement.cs # Delcom/StoplightIndicator.cs # LICENSE.md # LightController.cs # Properties/AssemblyInfo.cs # Properties/Resources.Designer.cs # Properties/Resources.resx # Properties/Settings.Designer.cs # Properties/Settings.settings # README.md # UpdateCheck.cs # WorkIndicator.csproj # WorkIndicator.sln # WorkIndicator.sln.DotSettings
This commit is contained in:
+43
-21
@@ -15,20 +15,40 @@ namespace WorkIndicator
|
||||
public static class LightController
|
||||
{
|
||||
private static StoplightIndicator _stoplightIndicator;
|
||||
private static UsbService _usbService;
|
||||
private static bool _initialized;
|
||||
private static Status _status = Status.Auto;
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
_usbService = new UsbService();
|
||||
_usbService.DevicesChanged += DevicesChanged;
|
||||
|
||||
_stoplightIndicator = new StoplightIndicator();
|
||||
_stoplightIndicator.SetLight(StoplightIndicator.Light.Yellow, StoplightIndicator.LightState.On);
|
||||
|
||||
Properties.Settings.Default.PropertyChanged += HandleSettingChange;
|
||||
|
||||
AudioWatcher.MicrophoneInUseChanged += AudioWatcher_MicrophoneInUseChanged;
|
||||
AudioWatcher.Start();
|
||||
|
||||
_initialized = true;
|
||||
}
|
||||
|
||||
private static void HandleSettingChange(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == nameof(Properties.Settings.Default.DefaultStatus))
|
||||
UpdateLights();
|
||||
}
|
||||
|
||||
private static void DevicesChanged()
|
||||
{
|
||||
_stoplightIndicator?.Dispose();
|
||||
_stoplightIndicator = new StoplightIndicator();
|
||||
|
||||
UpdateLights();
|
||||
}
|
||||
|
||||
private static void AudioWatcher_MicrophoneInUseChanged(bool microphoneInUse)
|
||||
{
|
||||
UpdateLights();
|
||||
@@ -44,6 +64,8 @@ namespace WorkIndicator
|
||||
_stoplightIndicator.SetLights(StoplightIndicator.LightState.Off, StoplightIndicator.LightState.Off, StoplightIndicator.LightState.Off);
|
||||
_stoplightIndicator.Dispose();
|
||||
|
||||
_usbService.Dispose();
|
||||
|
||||
_initialized = false;
|
||||
}
|
||||
|
||||
@@ -63,36 +85,36 @@ namespace WorkIndicator
|
||||
var yellow = StoplightIndicator.LightState.Off;
|
||||
var green = StoplightIndicator.LightState.Off;
|
||||
|
||||
if (_status == Status.Auto)
|
||||
var status = _status;
|
||||
|
||||
if (status == Status.Auto)
|
||||
{
|
||||
if (AudioWatcher.MicrophoneInUse())
|
||||
{
|
||||
red = StoplightIndicator.LightState.On;
|
||||
status = Status.OnPhone;
|
||||
}
|
||||
else
|
||||
{
|
||||
yellow = StoplightIndicator.LightState.On;
|
||||
status = (Status) Enum.Parse(typeof(Status), Properties.Settings.Default.DefaultStatus);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
switch (status)
|
||||
{
|
||||
switch (_status)
|
||||
{
|
||||
case Status.Free:
|
||||
green = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.Working:
|
||||
yellow = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.OnPhone:
|
||||
red = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.Talking:
|
||||
red = StoplightIndicator.LightState.Blink;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
case Status.Free:
|
||||
green = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.Working:
|
||||
yellow = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.OnPhone:
|
||||
red = StoplightIndicator.LightState.On;
|
||||
break;
|
||||
case Status.Talking:
|
||||
red = StoplightIndicator.LightState.Blink;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
_stoplightIndicator.SetLights(red, yellow, green);
|
||||
|
||||
Reference in New Issue
Block a user