ps2_manager/PS2_Manager/App.axaml.cs
WeeXnes eb5975667f
Some checks failed
Java CI / test (push) Has been cancelled
added Config Parsing
2025-04-23 02:47:39 +02:00

77 lines
No EOL
2.6 KiB
C#

using System;
using System.IO;
using System.Runtime.InteropServices.JavaScript;
using System.Text.Json;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using PS2_Manager.Core;
using Tmds.DBus.Protocol;
namespace PS2_Manager;
public partial class App : Application
{
private void SetExceptionHandler()
{
AppDomain currentDomain = default(AppDomain);
currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += GlobalUnhandledExceptionHandler;
}
private static void GlobalUnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = (Exception)e.ExceptionObject;
Console.Error("Exception: " + ex.Message);
DateTime currentDateTime = DateTime.Now;
string formattedDateTime = currentDateTime.ToString("dddd, dd MMMM yyyy HH:mm:ss");
using (StreamWriter writer = new StreamWriter("error_log.txt", append: true))
{
writer.WriteLine(formattedDateTime);
writer.WriteLine(ex.ToString());
writer.WriteLine("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
}
}
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
SetExceptionHandler();
Console.SetLogFile("output.log");
GameConfig gameConfig = new GameConfig();
gameConfig.ParseConfig("/run/media/weexnes/79F5-D666/CFG/SLES_503.30.cfg");
Console.WriteLine(gameConfig.ToString());
Globals.LoadSettings();
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
if (String.IsNullOrEmpty(settings.library_path.GetValue<string>()))
{
var setupWindow = new Setup();
setupWindow.Closed += (_, _) =>
{
// Replace MainWindow after setup finishes
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var mainWindow = new MainWindow();
desktop.MainWindow = mainWindow;
mainWindow.Show();
}
};
desktop.MainWindow = setupWindow;
}
else
{
desktop.MainWindow = new MainWindow();
}
}
base.OnFrameworkInitializationCompleted();
}
}