misc: Code cleanups.

This commit is contained in:
Evan Husted 2024-10-24 14:10:10 -05:00
parent a2cd3c2799
commit 7618ef134d
13 changed files with 45 additions and 113 deletions

View file

@ -85,7 +85,9 @@ namespace Ryujinx.HLE.Loaders.Processes
} }
// TODO: LibHac npdm currently doesn't support version field. // TODO: LibHac npdm currently doesn't support version field.
string version = ProgramId > 0x0100000000007FFF ? DisplayVersion : device.System.ContentManager.GetCurrentFirmwareVersion()?.VersionString ?? "?"; string version = ProgramId > 0x0100000000007FFF
? DisplayVersion
: device.System.ContentManager.GetCurrentFirmwareVersion()?.VersionString ?? "?";
Logger.Info?.Print(LogClass.Loader, $"Application Loaded: {Name} v{version} [{ProgramIdText}] [{(Is64Bit ? "64-bit" : "32-bit")}]"); Logger.Info?.Print(LogClass.Loader, $"Application Loaded: {Name} v{version} [{ProgramIdText}] [{(Is64Bit ? "64-bit" : "32-bit")}]");

View file

@ -119,12 +119,10 @@ namespace Ryujinx.Headless.SDL2
} }
} }
IGamepad gamepad; IGamepad gamepad = _inputManager.KeyboardDriver.GetGamepad(inputId);
bool isKeyboard = true; bool isKeyboard = true;
gamepad = _inputManager.KeyboardDriver.GetGamepad(inputId);
if (gamepad == null) if (gamepad == null)
{ {
gamepad = _inputManager.GamepadDriver.GetGamepad(inputId); gamepad = _inputManager.GamepadDriver.GetGamepad(inputId);

View file

@ -325,12 +325,12 @@ namespace Ryujinx.UI.Common.Configuration
public ReactiveObject<bool> EnableDockedMode { get; private set; } public ReactiveObject<bool> EnableDockedMode { get; private set; }
/// <summary> /// <summary>
/// Enables or disables profiled translation cache persistency /// Enables or disables persistent profiled translation cache
/// </summary> /// </summary>
public ReactiveObject<bool> EnablePtc { get; private set; } public ReactiveObject<bool> EnablePtc { get; private set; }
/// <summary> /// <summary>
/// Enables or disables low-power profiled translation cache persistency loading /// Enables or disables low-power persistent profiled translation cache loading
/// </summary> /// </summary>
public ReactiveObject<bool> EnableLowPowerPtc { get; private set; } public ReactiveObject<bool> EnableLowPowerPtc { get; private set; }

View file

@ -73,7 +73,7 @@ namespace Ryujinx.UI.Common
{ {
Assets = new Assets Assets = new Assets
{ {
LargeImageKey = _discordGameAssetKeys.Contains(procRes.ProgramIdText.ToLower()) ? procRes.ProgramIdText : "game", LargeImageKey = _discordGameAssetKeys.Contains(procRes.ProgramIdText) ? procRes.ProgramIdText : "game",
LargeImageText = TruncateToByteLength($"{appMeta.Title} | {procRes.DisplayVersion}"), LargeImageText = TruncateToByteLength($"{appMeta.Title} | {procRes.DisplayVersion}"),
SmallImageKey = "ryujinx", SmallImageKey = "ryujinx",
SmallImageText = TruncateToByteLength(_description) SmallImageText = TruncateToByteLength(_description)
@ -121,8 +121,8 @@ namespace Ryujinx.UI.Common
} }
private static readonly string[] _discordGameAssetKeys = private static readonly string[] _discordGameAssetKeys =
[ [
"01002da013484000", // The Legend of Zelda: Skyward Sword HD "01002da013484000", // The Legend of Zelda: Skyward Sword HD
"01007ef00011e000", // The Legend of Zelda: Breath of the Wild "01007ef00011e000", // The Legend of Zelda: Breath of the Wild
"0100f2c0115b6000", // The Legend of Zelda: Tears of the Kingdom "0100f2c0115b6000", // The Legend of Zelda: Tears of the Kingdom
"01008cf01baac000", // The Legend of Zelda: Echoes of Wisdom "01008cf01baac000", // The Legend of Zelda: Echoes of Wisdom
@ -131,9 +131,15 @@ namespace Ryujinx.UI.Common
"0100000000010000", // SUPER MARIO ODYSSEY "0100000000010000", // SUPER MARIO ODYSSEY
"010015100b514000", // Super Mario Bros. Wonder "010015100b514000", // Super Mario Bros. Wonder
"0100152000022000", // Mario Kart 8 Deluxe "0100152000022000", // Mario Kart 8 Deluxe
"01006fe013472000", // Mario Party Superstars
"0100965017338000", // Super Mario Party Jamboree
"010049900f546000", // Super Mario 3D All-Stars "010049900f546000", // Super Mario 3D All-Stars
"010028600ebda000", // Super Mario 3D World + Bowser's Fury "010028600ebda000", // Super Mario 3D World + Bowser's Fury
"0100ecd018ebe000", // Paper Mario: The Thousand-Year Door "0100ecd018ebe000", // Paper Mario: The Thousand-Year Door
"010019401051c000", // Mario Strikers League
"0100ea80032ea000", // Super Mario Bros. U Deluxe
"0100bc0018138000", // Super Mario RPG
"0100bde00862a000", // Mario Tennis Aces
"010048701995e000", // Luigi's Mansion 2 HD "010048701995e000", // Luigi's Mansion 2 HD
"0100dca0064a6000", // Luigi's Mansion 3 "0100dca0064a6000", // Luigi's Mansion 3
@ -148,15 +154,22 @@ namespace Ryujinx.UI.Common
"0100d680194b2000", // Pikmin 2 "0100d680194b2000", // Pikmin 2
"0100f4c009322000", // Pikmin 3 Deluxe "0100f4c009322000", // Pikmin 3 Deluxe
"0100b7c00933a000", // Pikmin 4 "0100b7c00933a000", // Pikmin 4
"01004ad014bf0000", // Sonic Frontiers
"01004d300c5ae000", // Kirby and the Forgotten Land
"01006b601380e000", // Kirby's Return to Dreamland Deluxe
"01007e3006dda000", // Kirby Star Allies
"0100c2500fc20000", // Splatoon 3 "0100c2500fc20000", // Splatoon 3
"0100ba0018500000", // Splatoon 3: Splatfest World Premiere "0100ba0018500000", // Splatoon 3: Splatfest World Premiere
"01000a10041ea000", // The Elder Scrolls V: Skyrim "01000a10041ea000", // The Elder Scrolls V: Skyrim
"01007820196a6000", // Red Dead Redemption "01007820196a6000", // Red Dead Redemption
"01008c8012920000", // Dying Light Platinum Edition
"0100744001588000", // Cars 3: Driven to Win "0100744001588000", // Cars 3: Driven to Win
"0100c1f0051b6000", // Donkey Kong Country: Tropical Freeze
"01002b00111a2000", // Hyrule Warriors: Age of Calamity "01002b00111a2000", // Hyrule Warriors: Age of Calamity
"01006f8002326000", // Animal Crossing: New Horizons "01006f8002326000", // Animal Crossing: New Horizons
"01004d300c5ae000", // Kirby and the Forgotten Land
"0100853015e86000", // No Man's Sky "0100853015e86000", // No Man's Sky
"01008d100d43e000", // Saints Row IV "01008d100d43e000", // Saints Row IV
"0100de600beee000", // Saints Row: The Third - The Full Package "0100de600beee000", // Saints Row: The Third - The Full Package

View file

@ -68,7 +68,7 @@ namespace Ryujinx.Ava.Common
Logger.Warning?.Print(LogClass.Application, "No control file was found for this game. Using a dummy one instead. This may cause inaccuracies in some games."); Logger.Warning?.Print(LogClass.Application, "No control file was found for this game. Using a dummy one instead. This may cause inaccuracies in some games.");
} }
Uid user = new((ulong)_accountManager.LastOpenedUser.UserId.High, (ulong)_accountManager.LastOpenedUser.UserId.Low); Uid user = _accountManager.LastOpenedUser.UserId.ToLibHacUid();
result = _horizonClient.Fs.EnsureApplicationSaveData(out _, new ApplicationId(titleId), in control, in user); result = _horizonClient.Fs.EnsureApplicationSaveData(out _, new ApplicationId(titleId), in control, in user);
if (result.IsFailure()) if (result.IsFailure())

View file

@ -37,14 +37,9 @@ namespace Ryujinx.Ava.UI.Applet
public ControllerAppletDialog(MainWindow mainWindow, ControllerAppletUIArgs args) public ControllerAppletDialog(MainWindow mainWindow, ControllerAppletUIArgs args)
{ {
if (args.PlayerCountMin == args.PlayerCountMax) PlayerCount = args.PlayerCountMin == args.PlayerCountMax
{ ? args.PlayerCountMin.ToString()
PlayerCount = args.PlayerCountMin.ToString(); : $"{args.PlayerCountMin} - {args.PlayerCountMax}";
}
else
{
PlayerCount = $"{args.PlayerCountMin} - {args.PlayerCountMax}";
}
SupportsProController = (args.SupportedStyles & ControllerType.ProController) != 0; SupportsProController = (args.SupportedStyles & ControllerType.ProController) != 0;
SupportsLeftJoycon = (args.SupportedStyles & ControllerType.JoyconLeft) != 0; SupportsLeftJoycon = (args.SupportedStyles & ControllerType.JoyconLeft) != 0;

View file

@ -13,19 +13,19 @@ namespace Ryujinx.Ava.UI.Helpers
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{ {
if (value == null) switch (value)
{ {
return null; case null:
return null;
case byte[] buffer when targetType == typeof(IImage):
{
MemoryStream mem = new(buffer);
return new Bitmap(mem);
}
default:
throw new NotSupportedException();
} }
if (value is byte[] buffer && targetType == typeof(IImage))
{
MemoryStream mem = new(buffer);
return new Bitmap(mem);
}
throw new NotSupportedException();
} }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

View file

@ -41,11 +41,7 @@ namespace Ryujinx.Ava.UI.Helpers
if (_isWaitingForInput) if (_isWaitingForInput)
{ {
Dispatcher.UIThread.Post(() => Dispatcher.UIThread.Post(() => Cancel());
{
Cancel();
});
return; return;
} }

View file

@ -22,22 +22,11 @@ namespace Ryujinx.Ava.UI.Helpers
_key = key; _key = key;
} }
public string this[string key] public string this[string key] =>
{ _glyphs.TryGetValue(Enum.Parse<Glyph>(key), out var val)
get ? val
{ : string.Empty;
if (_glyphs.TryGetValue(Enum.Parse<Glyph>(key), out var val))
{
return val;
}
return string.Empty; public override object ProvideValue(IServiceProvider serviceProvider) => this[_key];
}
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this[_key];
}
} }
} }

View file

@ -1,44 +0,0 @@
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.UI.Common.Helper;
using System;
using System.Globalization;
namespace Ryujinx.Ava.UI.Helpers
{
/// <summary>
/// This <see cref="IValueConverter"/> makes sure that the string "Never" that's returned by <see cref="ValueFormatUtils.FormatDateTime"/> is properly localized in the Avalonia UI.
/// After the Avalonia UI has been made the default and the GTK UI is removed, <see cref="ValueFormatUtils"/> should be updated to directly return a localized string.
/// </summary>
// TODO: localize ValueFormatUtils.FormateDateTime
internal class LocalizedNeverConverter : MarkupExtension, IValueConverter
{
private static readonly LocalizedNeverConverter _instance = new();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is not string valStr)
{
return "";
}
if (valStr == "Never")
{
return LocaleManager.Instance[LocaleKeys.Never];
}
return valStr;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return _instance;
}
}
}

View file

@ -1,16 +0,0 @@
using System;
namespace Ryujinx.Ava.UI.Models
{
internal class StatusInitEventArgs : EventArgs
{
public string GpuBackend { get; }
public string GpuName { get; }
public StatusInitEventArgs(string gpuBackend, string gpuName)
{
GpuBackend = gpuBackend;
GpuName = gpuName;
}
}
}

View file

@ -45,7 +45,6 @@ namespace Ryujinx.Ava.UI.ViewModels.Input
private PlayerIndex _playerId; private PlayerIndex _playerId;
private int _controller; private int _controller;
private readonly int _controllerNumber;
private string _controllerImage; private string _controllerImage;
private int _device; private int _device;
private object _configViewModel; private object _configViewModel;

View file

@ -139,7 +139,7 @@ namespace Ryujinx.Ava.UI.Windows
var value = GetColorValue(color); var value = GetColorValue(color);
// If the color is rarely used on the image, // If the color is rarely used on the image,
// then chances are that theres a better candidate, even if the saturation value // then chances are that there's a better candidate, even if the saturation value
// is high. By multiplying the saturation value with a weight, we can lower // is high. By multiplying the saturation value with a weight, we can lower
// it if the color is almost never used (hit count is low). // it if the color is almost never used (hit count is low).
var satWeighted = quantSat; var satWeighted = quantSat;