1
0
mirror of https://github.com/DarthAffe/CUE.NET.git synced 2025-12-12 16:58:29 +00:00

68 lines
2.0 KiB
C#

using System;
using System.Windows;
using Example_Ambilight_full.TakeAsIs;
using Example_Ambilight_full.TakeAsIs.Helper;
using Example_Ambilight_full.TakeAsIs.ScreenCapturing;
using Example_Ambilight_full.TakeAsIs.UI;
using Hardcodet.Wpf.TaskbarNotification;
namespace Example_Ambilight_full
{
public partial class App : Application
{
#region Constants
private const string PATH_SETTINGS = "Settings.xaml";
#endregion
#region Properties & Fields
private TaskbarIcon _taskBar;
private AmbilightSettings _settings;
private Ambilight _ambilight;
#endregion
#region Methods
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
try
{
_settings = SerializationHelper.LoadObjectFromFile<AmbilightSettings>(PATH_SETTINGS) ??
new AmbilightSettings();
IScreenCapture screenCapture = new DX9ScreenCapture();
// DarthAffe 05.11.2016: This could be done way cleaner ...
_taskBar = FindResource("Taskbar") as TaskbarIcon;
FrameworkElement configView = _taskBar?.TrayPopup as ConfigView;
if (configView == null)
Shutdown();
else
configView.DataContext = new ConfigViewModel(_settings);
_ambilight = new Ambilight(screenCapture, _settings);
if (!_ambilight.Initialize())
throw new ApplicationException();
}
catch
{
MessageBox.Show("An error occured while starting the Keyboard-Ambilight.\r\nPlease double check if CUE is running and 'Enable SDK' is checked.", "Can't start Keyboard-Ambilight");
Shutdown();
}
}
protected override void OnExit(ExitEventArgs e)
{
base.OnExit(e);
SerializationHelper.SaveObjectToFile(_settings, PATH_SETTINGS);
}
#endregion
}
}