This lets mass deployments and modchip setups apply the same install/update flow from a PC, with generated deletion lists kept in sync with the payload headers.
55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
namespace OmniNX.DesktopInstaller.Models;
|
|
|
|
public enum OmniNxVariant
|
|
{
|
|
None = 0,
|
|
Light,
|
|
Standard,
|
|
Oc,
|
|
}
|
|
|
|
public enum InstallMode
|
|
{
|
|
Clean,
|
|
Update,
|
|
}
|
|
|
|
public sealed class InstallOptions
|
|
{
|
|
public required string DriveRoot { get; init; }
|
|
public required OmniNxVariant Variant { get; init; }
|
|
public InstallMode Mode { get; init; }
|
|
public bool Use8GbRam { get; init; }
|
|
public bool UseHekateAmsPro { get; init; }
|
|
public bool ForceCleanInstall { get; init; }
|
|
public string? StagingPath { get; init; }
|
|
}
|
|
|
|
public sealed class OmniNxStatus
|
|
{
|
|
public bool IsInstalled { get; init; }
|
|
public OmniNxVariant Variant { get; init; }
|
|
public string Version { get; init; } = string.Empty;
|
|
}
|
|
|
|
public sealed class ReleaseInfo
|
|
{
|
|
public required string TagName { get; init; }
|
|
public required string Name { get; init; }
|
|
public required IReadOnlyList<ReleaseAsset> Assets { get; init; }
|
|
}
|
|
|
|
public sealed class ReleaseAsset
|
|
{
|
|
public required string Name { get; init; }
|
|
public required string DownloadUrl { get; init; }
|
|
public long Size { get; init; }
|
|
}
|
|
|
|
public sealed class InstallProgressReport
|
|
{
|
|
public required string Message { get; init; }
|
|
public int? Percent { get; init; }
|
|
public bool IsError { get; init; }
|
|
}
|