aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Common/Configuration
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Common/Configuration')
-rw-r--r--Ryujinx.Common/Configuration/ConfigurationFileFormat.cs12
-rw-r--r--Ryujinx.Common/Configuration/ConfigurationState.cs68
-rw-r--r--Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs5
-rw-r--r--Ryujinx.Common/Configuration/Ui/ColumnSort.cs8
4 files changed, 78 insertions, 15 deletions
diff --git a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
index e2431ac6..e00e1eaa 100644
--- a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
@@ -13,7 +13,7 @@ namespace Ryujinx.Configuration
/// <summary>
/// The current version of the file format
/// </summary>
- public const int CurrentVersion = 8;
+ public const int CurrentVersion = 9;
public int Version { get; set; }
@@ -138,6 +138,11 @@ namespace Ryujinx.Configuration
public GuiColumns GuiColumns { get; set; }
/// <summary>
+ /// Used to configure column sort settings in the GUI
+ /// </summary>
+ public ColumnSort ColumnSort { get; set; }
+
+ /// <summary>
/// A list of directories containing games to be used to load games into the games list
/// </summary>
public List<string> GameDirs { get; set; }
@@ -158,6 +163,11 @@ namespace Ryujinx.Configuration
public bool EnableKeyboard { get; set; }
/// <summary>
+ /// Hotkey Keyboard Bindings
+ /// </summary>
+ public KeyboardHotkeys Hotkeys { get; set; }
+
+ /// <summary>
/// Keyboard control bindings
/// </summary>
public List<KeyboardConfig> KeyboardConfig { get; set; }
diff --git a/Ryujinx.Common/Configuration/ConfigurationState.cs b/Ryujinx.Common/Configuration/ConfigurationState.cs
index 26bbabc7..2a85f7e1 100644
--- a/Ryujinx.Common/Configuration/ConfigurationState.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationState.cs
@@ -44,12 +44,29 @@ namespace Ryujinx.Configuration
}
}
+ public class ColumnSortSettings
+ {
+ public ReactiveObject<int> SortColumnId { get; private set; }
+ public ReactiveObject<bool> SortAscending { get; private set; }
+
+ public ColumnSortSettings()
+ {
+ SortColumnId = new ReactiveObject<int>();
+ SortAscending = new ReactiveObject<bool>();
+ }
+ }
+
/// <summary>
/// Used to toggle columns in the GUI
/// </summary>
public Columns GuiColumns { get; private set; }
/// <summary>
+ /// Used to configure column sort settings in the GUI
+ /// </summary>
+ public ColumnSortSettings ColumnSort { get; private set; }
+
+ /// <summary>
/// A list of directories containing games to be used to load games into the games list
/// </summary>
public ReactiveObject<List<string>> GameDirs { get; private set; }
@@ -67,6 +84,7 @@ namespace Ryujinx.Configuration
public UiSection()
{
GuiColumns = new Columns();
+ ColumnSort = new ColumnSortSettings();
GameDirs = new ReactiveObject<List<string>>();
EnableCustomTheme = new ReactiveObject<bool>();
CustomThemePath = new ReactiveObject<string>();
@@ -218,6 +236,11 @@ namespace Ryujinx.Configuration
public ReactiveObject<bool> EnableKeyboard { get; private set; }
/// <summary>
+ /// Hotkey Keyboard Bindings
+ /// </summary>
+ public ReactiveObject<KeyboardHotkeys> Hotkeys { get; private set; }
+
+ /// <summary>
/// Input device configuration.
/// NOTE: This ReactiveObject won't issue an event when the List has elements added or removed.
/// TODO: Implement a ReactiveList class.
@@ -227,6 +250,7 @@ namespace Ryujinx.Configuration
public HidSection()
{
EnableKeyboard = new ReactiveObject<bool>();
+ Hotkeys = new ReactiveObject<KeyboardHotkeys>();
InputConfig = new ReactiveObject<List<InputConfig>>();
}
}
@@ -347,7 +371,7 @@ namespace Ryujinx.Configuration
EnableFsIntegrityChecks = System.EnableFsIntegrityChecks,
FsGlobalAccessLogMode = System.FsGlobalAccessLogMode,
IgnoreMissingServices = System.IgnoreMissingServices,
- GuiColumns = new GuiColumns()
+ GuiColumns = new GuiColumns
{
FavColumn = Ui.GuiColumns.FavColumn,
IconColumn = Ui.GuiColumns.IconColumn,
@@ -360,10 +384,16 @@ namespace Ryujinx.Configuration
FileSizeColumn = Ui.GuiColumns.FileSizeColumn,
PathColumn = Ui.GuiColumns.PathColumn,
},
+ ColumnSort = new ColumnSort
+ {
+ SortColumnId = Ui.ColumnSort.SortColumnId,
+ SortAscending = Ui.ColumnSort.SortAscending
+ },
GameDirs = Ui.GameDirs,
EnableCustomTheme = Ui.EnableCustomTheme,
CustomThemePath = Ui.CustomThemePath,
EnableKeyboard = Hid.EnableKeyboard,
+ Hotkeys = Hid.Hotkeys,
KeyboardConfig = keyboardConfigList,
ControllerConfig = controllerConfigList
};
@@ -406,10 +436,17 @@ namespace Ryujinx.Configuration
Ui.GuiColumns.FileExtColumn.Value = true;
Ui.GuiColumns.FileSizeColumn.Value = true;
Ui.GuiColumns.PathColumn.Value = true;
+ Ui.ColumnSort.SortColumnId.Value = 0;
+ Ui.ColumnSort.SortAscending.Value = false;
Ui.GameDirs.Value = new List<string>();
Ui.EnableCustomTheme.Value = false;
Ui.CustomThemePath.Value = "";
Hid.EnableKeyboard.Value = false;
+
+ Hid.Hotkeys.Value = new KeyboardHotkeys
+ {
+ ToggleVsync = Key.Tab
+ };
Hid.InputConfig.Value = new List<InputConfig>
{
@@ -451,10 +488,6 @@ namespace Ryujinx.Configuration
ButtonZr = Key.O,
ButtonSl = Key.PageUp,
ButtonSr = Key.PageDown
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab
}
}
};
@@ -553,10 +586,6 @@ namespace Ryujinx.Configuration
ButtonZr = Key.O,
ButtonSl = Key.Unbound,
ButtonSr = Key.Unbound
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab
}
}
};
@@ -587,6 +616,24 @@ namespace Ryujinx.Configuration
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 9)
+ {
+ Common.Logging.Logger.PrintWarning(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 9.");
+
+ configurationFileFormat.ColumnSort = new ColumnSort
+ {
+ SortColumnId = 0,
+ SortAscending = false
+ };
+
+ configurationFileFormat.Hotkeys = new KeyboardHotkeys
+ {
+ ToggleVsync = Key.Tab
+ };
+
+ configurationFileUpdated = true;
+ }
+
List<InputConfig> inputConfig = new List<InputConfig>();
foreach (ControllerConfig controllerConfig in configurationFileFormat.ControllerConfig)
{
@@ -631,10 +678,13 @@ namespace Ryujinx.Configuration
Ui.GuiColumns.FileExtColumn.Value = configurationFileFormat.GuiColumns.FileExtColumn;
Ui.GuiColumns.FileSizeColumn.Value = configurationFileFormat.GuiColumns.FileSizeColumn;
Ui.GuiColumns.PathColumn.Value = configurationFileFormat.GuiColumns.PathColumn;
+ Ui.ColumnSort.SortColumnId.Value = configurationFileFormat.ColumnSort.SortColumnId;
+ Ui.ColumnSort.SortAscending.Value = configurationFileFormat.ColumnSort.SortAscending;
Ui.GameDirs.Value = configurationFileFormat.GameDirs;
Ui.EnableCustomTheme.Value = configurationFileFormat.EnableCustomTheme;
Ui.CustomThemePath.Value = configurationFileFormat.CustomThemePath;
Hid.EnableKeyboard.Value = configurationFileFormat.EnableKeyboard;
+ Hid.Hotkeys.Value = configurationFileFormat.Hotkeys;
Hid.InputConfig.Value = inputConfig;
if (configurationFileUpdated)
diff --git a/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs b/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
index 7dfbcb87..4e217ae5 100644
--- a/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
+++ b/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
@@ -14,10 +14,5 @@ namespace Ryujinx.Common.Configuration.Hid
/// Right JoyCon Keyboard Bindings
/// </summary>
public NpadKeyboardRight RightJoycon { get; set; }
-
- /// <summary>
- /// Hotkey Keyboard Bindings
- /// </summary>
- public KeyboardHotkeys Hotkeys { get; set; }
}
} \ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Ui/ColumnSort.cs b/Ryujinx.Common/Configuration/Ui/ColumnSort.cs
new file mode 100644
index 00000000..fd8b5da1
--- /dev/null
+++ b/Ryujinx.Common/Configuration/Ui/ColumnSort.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.Configuration.Ui
+{
+ public struct ColumnSort
+ {
+ public int SortColumnId { get; set; }
+ public bool SortAscending { get; set; }
+ }
+} \ No newline at end of file