mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-07-26 15:49:57 -06:00

These changes allow players to matchmake for local wireless using a LDN server. The network implementation originates from Berry's public TCP RyuLDN fork. Logo and unrelated changes have been removed. Additionally displays LDN game status in the game selection window when RyuLDN is enabled. Functionality is only enabled while network mode is set to "RyuLDN" in the settings.
103 lines
3.3 KiB
C#
103 lines
3.3 KiB
C#
using Avalonia.Controls;
|
|
using FluentAvalonia.Core;
|
|
using FluentAvalonia.UI.Controls;
|
|
using Ryujinx.Ava.Common.Locale;
|
|
using Ryujinx.Ava.UI.ViewModels;
|
|
using Ryujinx.HLE.FileSystem;
|
|
using System;
|
|
|
|
namespace Ryujinx.Ava.UI.Windows
|
|
{
|
|
public partial class SettingsWindow : StyleableAppWindow
|
|
{
|
|
internal readonly SettingsViewModel ViewModel;
|
|
|
|
public SettingsWindow(VirtualFileSystem virtualFileSystem, ContentManager contentManager)
|
|
{
|
|
Title = App.FormatTitle(LocaleKeys.Settings);
|
|
|
|
DataContext = ViewModel = new SettingsViewModel(virtualFileSystem, contentManager);
|
|
|
|
ViewModel.CloseWindow += Close;
|
|
ViewModel.SaveSettingsEvent += SaveSettings;
|
|
|
|
InitializeComponent();
|
|
Load();
|
|
}
|
|
|
|
public SettingsWindow()
|
|
{
|
|
DataContext = ViewModel = new SettingsViewModel();
|
|
|
|
InitializeComponent();
|
|
Load();
|
|
}
|
|
|
|
public void SaveSettings()
|
|
{
|
|
InputPage.InputView?.SaveCurrentProfile();
|
|
|
|
if (Owner is MainWindow window && (ViewModel.GameDirectoryChanged || ViewModel.AutoloadDirectoryChanged))
|
|
{
|
|
window.LoadApplications();
|
|
}
|
|
}
|
|
|
|
private void Load()
|
|
{
|
|
Pages.Children.Clear();
|
|
NavPanel.SelectionChanged += NavPanelOnSelectionChanged;
|
|
NavPanel.SelectedItem = NavPanel.MenuItems.ElementAt(0);
|
|
}
|
|
|
|
private void NavPanelOnSelectionChanged(object sender, NavigationViewSelectionChangedEventArgs e)
|
|
{
|
|
if (e.SelectedItem is NavigationViewItem navItem && navItem.Tag is not null)
|
|
{
|
|
switch (navItem.Tag.ToString())
|
|
{
|
|
case "UiPage":
|
|
UiPage.ViewModel = ViewModel;
|
|
NavPanel.Content = UiPage;
|
|
break;
|
|
case "InputPage":
|
|
NavPanel.Content = InputPage;
|
|
break;
|
|
case "HotkeysPage":
|
|
NavPanel.Content = HotkeysPage;
|
|
break;
|
|
case "SystemPage":
|
|
SystemPage.ViewModel = ViewModel;
|
|
NavPanel.Content = SystemPage;
|
|
break;
|
|
case "CpuPage":
|
|
NavPanel.Content = CpuPage;
|
|
break;
|
|
case "GraphicsPage":
|
|
NavPanel.Content = GraphicsPage;
|
|
break;
|
|
case "AudioPage":
|
|
NavPanel.Content = AudioPage;
|
|
break;
|
|
case "NetworkPage":
|
|
NetworkPage.ViewModel = ViewModel;
|
|
NavPanel.Content = NetworkPage;
|
|
break;
|
|
case "LoggingPage":
|
|
NavPanel.Content = LoggingPage;
|
|
break;
|
|
default:
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override void OnClosing(WindowClosingEventArgs e)
|
|
{
|
|
HotkeysPage.Dispose();
|
|
InputPage.Dispose();
|
|
base.OnClosing(e);
|
|
}
|
|
}
|
|
}
|