mirror of
https://github.com/DarthAffe/CUE.NET.git
synced 2025-12-12 08:48:30 +00:00
68 lines
2.0 KiB
C#
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
|
|
}
|
|
}
|