Files
Kenji-NX/src/Ryujinx/UI/Models/Input/HotkeyConfig.cs
T
KeatonTheBotandGreemDev 7d0947cac6 Add CommunityToolkit.Mvvm
Use [ObservableProperty] attribute, which greatly reduces or eliminates boilerplate code needed to generate observable properties

Co-authored-by: GreemDev <greemdev@ryujinx.app>
2026-01-14 16:58:45 -06:00

90 lines
2.6 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid;
namespace Ryujinx.Ava.UI.Models.Input
{
public partial class HotkeyConfig : BaseModel
{
[ObservableProperty]
private Key _toggleVSyncMode;
[ObservableProperty]
private Key _screenshot;
[ObservableProperty]
private Key _showUI;
[ObservableProperty]
private Key _pause;
[ObservableProperty]
private Key _toggleMute;
[ObservableProperty]
private Key _resScaleUp;
[ObservableProperty]
private Key _resScaleDown;
[ObservableProperty]
private Key _volumeUp;
[ObservableProperty]
private Key _volumeDown;
[ObservableProperty]
private Key _customVSyncIntervalIncrement;
[ObservableProperty]
private Key _customVSyncIntervalDecrement;
[ObservableProperty]
private Key _turboMode;
[ObservableProperty] private bool _turboModeWhileHeld;
public HotkeyConfig(KeyboardHotkeys config)
{
if (config == null)
return;
ToggleVSyncMode = config.ToggleVSyncMode;
Screenshot = config.Screenshot;
ShowUI = config.ShowUI;
Pause = config.Pause;
ToggleMute = config.ToggleMute;
ResScaleUp = config.ResScaleUp;
ResScaleDown = config.ResScaleDown;
VolumeUp = config.VolumeUp;
VolumeDown = config.VolumeDown;
CustomVSyncIntervalIncrement = config.CustomVSyncIntervalIncrement;
CustomVSyncIntervalDecrement = config.CustomVSyncIntervalDecrement;
TurboMode = config.TurboMode;
TurboModeWhileHeld = config.TurboModeWhileHeld;
}
public KeyboardHotkeys GetConfig()
{
var config = new KeyboardHotkeys
{
ToggleVSyncMode = ToggleVSyncMode,
Screenshot = Screenshot,
ShowUI = ShowUI,
Pause = Pause,
ToggleMute = ToggleMute,
ResScaleUp = ResScaleUp,
ResScaleDown = ResScaleDown,
VolumeUp = VolumeUp,
VolumeDown = VolumeDown,
CustomVSyncIntervalIncrement = CustomVSyncIntervalIncrement,
CustomVSyncIntervalDecrement = CustomVSyncIntervalDecrement,
TurboMode = TurboMode,
TurboModeWhileHeld = TurboModeWhileHeld
};
return config;
}
}
}