ps2_manager/PS2_Manager/ConvertGameWindow.axaml.cs
WeeXnes 4eb2d47adf
All checks were successful
Java CI / test (push) Successful in 1m29s
added a bin to iso converter
2025-04-27 20:20:51 +02:00

69 lines
No EOL
2 KiB
C#

using System.ComponentModel;
using System.IO;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using PS2_Manager.Core.IO.DiscImage;
using PS2_Manager.Core.IO.DiscImage.Type;
namespace PS2_Manager;
public partial class ConvertGameWindow : Window
{
public bool PreventClose { get; set; } = false;
public string binPath { get; set; }
public string isoPath { get; set; }
public BackgroundWorker Worker { get; set; }
public ConvertGameWindow(string path)
{
this.binPath = path;
this.isoPath = Path.ChangeExtension(path, ".iso");
InitializeComponent();
Worker = new BackgroundWorker();
Worker.RunWorkerCompleted += WorkerOnRunWorkerCompleted;
Worker.DoWork += WorkerOnDoWork;
}
private void WorkerOnDoWork(object? sender, DoWorkEventArgs e)
{
Console.Info("Worker has started");
Iso9660Conv conv = new Iso9660Conv();
conv.DiscImage = new BinType(this.binPath);
conv.Convert(this.isoPath);
}
private void WorkerOnRunWorkerCompleted(object? sender, RunWorkerCompletedEventArgs e)
{
Console.Info("File Converted");
OpenInstallWindow();
}
public void OpenInstallWindow()
{
Console.Success("Converted Successfully");
this.PreventClose = false;
new AddGameWindow(this.isoPath).Show();
this.Close();
}
private void Control_OnLoaded(object? sender, RoutedEventArgs e)
{
this.Label_1.Text = Path.GetFileName(this.binPath) + " needs to be converted into a ISO file";
}
private void Window_OnClosing(object? sender, WindowClosingEventArgs e)
{
if(this.PreventClose)
e.Cancel = true;
}
private void ConvertButton_OnClick(object? sender, RoutedEventArgs e)
{
this.PreventClose = true;
ConvertButton.Content = "Converting...";
Console.Warning("Converting " + this.binPath + " to ISO");
Worker.RunWorkerAsync();
}
}