aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Ryujinx.Ava/AppHost.cs13
-rw-r--r--src/Ryujinx.Ava/Assets/Locales/en_US.json1
-rw-r--r--src/Ryujinx.Ui.Common/Helper/TitleHelper.cs30
-rw-r--r--src/Ryujinx/Ui/MainWindow.cs4
-rw-r--r--src/Ryujinx/Ui/RendererWidgetBase.cs8
5 files changed, 42 insertions, 14 deletions
diff --git a/src/Ryujinx.Ava/AppHost.cs b/src/Ryujinx.Ava/AppHost.cs
index a443c0be..dac4a3c5 100644
--- a/src/Ryujinx.Ava/AppHost.cs
+++ b/src/Ryujinx.Ava/AppHost.cs
@@ -346,16 +346,9 @@ namespace Ryujinx.Ava
_viewModel.IsGameRunning = true;
- var activeProcess = Device.Processes.ActiveApplication;
-
- string titleNameSection = string.IsNullOrWhiteSpace(activeProcess.Name) ? string.Empty : $" {activeProcess.Name}";
- string titleVersionSection = string.IsNullOrWhiteSpace(activeProcess.DisplayVersion) ? string.Empty : $" v{activeProcess.DisplayVersion}";
- string titleIdSection = $" ({activeProcess.ProgramIdText.ToUpper()})";
- string titleArchSection = activeProcess.Is64Bit ? " (64-bit)" : " (32-bit)";
-
Dispatcher.UIThread.InvokeAsync(() =>
{
- _viewModel.Title = $"Ryujinx {Program.Version} -{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}";
+ _viewModel.Title = TitleHelper.ActiveApplicationTitle(Device.Processes.ActiveApplication, Program.Version);
});
_viewModel.SetUiProgressHandlers(Device);
@@ -727,6 +720,8 @@ namespace Ryujinx.Ava
Device?.System.TogglePauseEmulation(false);
_viewModel.IsPaused = false;
+ _viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version);
+ Logger.Info?.Print(LogClass.Emulation, "Emulation was resumed");
}
internal void Pause()
@@ -734,6 +729,8 @@ namespace Ryujinx.Ava
Device?.System.TogglePauseEmulation(true);
_viewModel.IsPaused = true;
+ _viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version, LocaleManager.Instance[LocaleKeys.Paused]);
+ Logger.Info?.Print(LogClass.Emulation, "Emulation was paused");
}
private void InitializeSwitchInstance()
diff --git a/src/Ryujinx.Ava/Assets/Locales/en_US.json b/src/Ryujinx.Ava/Assets/Locales/en_US.json
index bc2bbfe8..493aaa81 100644
--- a/src/Ryujinx.Ava/Assets/Locales/en_US.json
+++ b/src/Ryujinx.Ava/Assets/Locales/en_US.json
@@ -600,6 +600,7 @@
"Cancel": "Cancel",
"Save": "Save",
"Discard": "Discard",
+ "Paused": "Paused",
"UserProfilesSetProfileImage": "Set Profile Image",
"UserProfileEmptyNameError": "Name is required",
"UserProfileNoImageError": "Profile image must be set",
diff --git a/src/Ryujinx.Ui.Common/Helper/TitleHelper.cs b/src/Ryujinx.Ui.Common/Helper/TitleHelper.cs
new file mode 100644
index 00000000..089b5215
--- /dev/null
+++ b/src/Ryujinx.Ui.Common/Helper/TitleHelper.cs
@@ -0,0 +1,30 @@
+using Ryujinx.HLE.Loaders.Processes;
+using System;
+
+namespace Ryujinx.Ui.Common.Helper
+{
+ public static class TitleHelper
+ {
+ public static string ActiveApplicationTitle(ProcessResult activeProcess, string applicationVersion, string pauseString = "")
+ {
+ if (activeProcess == null)
+ {
+ return String.Empty;
+ }
+
+ string titleNameSection = string.IsNullOrWhiteSpace(activeProcess.Name) ? string.Empty : $" {activeProcess.Name}";
+ string titleVersionSection = string.IsNullOrWhiteSpace(activeProcess.DisplayVersion) ? string.Empty : $" v{activeProcess.DisplayVersion}";
+ string titleIdSection = $" ({activeProcess.ProgramIdText.ToUpper()})";
+ string titleArchSection = activeProcess.Is64Bit ? " (64-bit)" : " (32-bit)";
+
+ string appTitle = $"Ryujinx {applicationVersion} -{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}";
+
+ if (!string.IsNullOrEmpty(pauseString))
+ {
+ appTitle += $" ({pauseString})";
+ }
+
+ return appTitle;
+ }
+ }
+}
diff --git a/src/Ryujinx/Ui/MainWindow.cs b/src/Ryujinx/Ui/MainWindow.cs
index b12210f8..2a088f56 100644
--- a/src/Ryujinx/Ui/MainWindow.cs
+++ b/src/Ryujinx/Ui/MainWindow.cs
@@ -1453,6 +1453,8 @@ namespace Ryujinx.Ui
_pauseEmulation.Sensitive = false;
_resumeEmulation.Sensitive = true;
_emulationContext.System.TogglePauseEmulation(true);
+ Title = TitleHelper.ActiveApplicationTitle(_emulationContext.Processes.ActiveApplication, Program.Version, "Paused");
+ Logger.Info?.Print(LogClass.Emulation, "Emulation was paused");
}
private void ResumeEmulation_Pressed(object sender, EventArgs args)
@@ -1460,6 +1462,8 @@ namespace Ryujinx.Ui
_pauseEmulation.Sensitive = true;
_resumeEmulation.Sensitive = false;
_emulationContext.System.TogglePauseEmulation(false);
+ Title = TitleHelper.ActiveApplicationTitle(_emulationContext.Processes.ActiveApplication, Program.Version);
+ Logger.Info?.Print(LogClass.Emulation, "Emulation was resumed");
}
public void ActivatePauseMenu()
diff --git a/src/Ryujinx/Ui/RendererWidgetBase.cs b/src/Ryujinx/Ui/RendererWidgetBase.cs
index 6a68a792..6ae122a0 100644
--- a/src/Ryujinx/Ui/RendererWidgetBase.cs
+++ b/src/Ryujinx/Ui/RendererWidgetBase.cs
@@ -11,6 +11,7 @@ using Ryujinx.Input;
using Ryujinx.Input.GTK3;
using Ryujinx.Input.HLE;
using Ryujinx.Ui.Common.Configuration;
+using Ryujinx.Ui.Common.Helper;
using Ryujinx.Ui.Widgets;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Png;
@@ -525,12 +526,7 @@ namespace Ryujinx.Ui
var activeProcess = Device.Processes.ActiveApplication;
- string titleNameSection = string.IsNullOrWhiteSpace(activeProcess.Name) ? string.Empty : $" {activeProcess.Name}";
- string titleVersionSection = string.IsNullOrWhiteSpace(activeProcess.DisplayVersion) ? string.Empty : $" v{activeProcess.DisplayVersion}";
- string titleIdSection = $" ({activeProcess.ProgramIdText.ToUpper()})";
- string titleArchSection = activeProcess.Is64Bit ? " (64-bit)" : " (32-bit)";
-
- parent.Title = $"Ryujinx {Program.Version} -{titleNameSection}{titleVersionSection}{titleIdSection}{titleArchSection}";
+ parent.Title = TitleHelper.ActiveApplicationTitle(activeProcess, Program.Version);
});
Thread renderLoopThread = new(Render)