aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle <59298462+Kfollen93@users.noreply.github.com>2024-03-07 14:49:57 -0800
committerGitHub <noreply@github.com>2024-03-07 22:49:57 +0000
commit4e1a60328e1236c5f54a36c147914b2c13a770d4 (patch)
tree5a2c3bb1b331e35deaf24ebab01bc5477d658cc4
parent2505a1abcd5f31e4364bfb7f9313546f1840e5e1 (diff)
Add title of game to screenshot text (#6266)1.1.1218
* Add sanitize method * Add app name to screenshot text output * Add app name to screenshot text
-rw-r--r--src/Ryujinx.Common/Utilities/FileSystemUtils.cs8
-rw-r--r--src/Ryujinx.Gtk3/UI/RendererWidgetBase.cs9
-rw-r--r--src/Ryujinx/AppHost.cs6
3 files changed, 20 insertions, 3 deletions
diff --git a/src/Ryujinx.Common/Utilities/FileSystemUtils.cs b/src/Ryujinx.Common/Utilities/FileSystemUtils.cs
index e76c2b60..a57fa8a7 100644
--- a/src/Ryujinx.Common/Utilities/FileSystemUtils.cs
+++ b/src/Ryujinx.Common/Utilities/FileSystemUtils.cs
@@ -1,4 +1,6 @@
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
namespace Ryujinx.Common.Utilities
{
@@ -44,5 +46,11 @@ namespace Ryujinx.Common.Utilities
CopyDirectory(sourceDir, destinationDir, true);
Directory.Delete(sourceDir, true);
}
+
+ public static string SanitizeFileName(string fileName)
+ {
+ var reservedChars = new HashSet<char>(Path.GetInvalidFileNameChars());
+ return string.Concat(fileName.Select(c => reservedChars.Contains(c) ? '_' : c));
+ }
}
}
diff --git a/src/Ryujinx.Gtk3/UI/RendererWidgetBase.cs b/src/Ryujinx.Gtk3/UI/RendererWidgetBase.cs
index e27d0604..0e636792 100644
--- a/src/Ryujinx.Gtk3/UI/RendererWidgetBase.cs
+++ b/src/Ryujinx.Gtk3/UI/RendererWidgetBase.cs
@@ -3,6 +3,7 @@ using Gtk;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
+using Ryujinx.Common.Utilities;
using Ryujinx.Graphics.GAL;
using Ryujinx.Graphics.GAL.Multithreading;
using Ryujinx.Graphics.Gpu;
@@ -378,8 +379,12 @@ namespace Ryujinx.UI
{
lock (this)
{
- var currentTime = DateTime.Now;
- string filename = $"ryujinx_capture_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
+ string applicationName = Device.Processes.ActiveApplication.Name;
+ string sanitizedApplicationName = FileSystemUtils.SanitizeFileName(applicationName);
+ DateTime currentTime = DateTime.Now;
+
+ string filename = $"{sanitizedApplicationName}_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
+
string directory = AppDataManager.Mode switch
{
AppDataManager.LaunchMode.Portable or AppDataManager.LaunchMode.Custom => System.IO.Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 04cec957..2620ea68 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -22,6 +22,7 @@ using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Multiplayer;
using Ryujinx.Common.Logging;
using Ryujinx.Common.SystemInterop;
+using Ryujinx.Common.Utilities;
using Ryujinx.Graphics.GAL;
using Ryujinx.Graphics.GAL.Multithreading;
using Ryujinx.Graphics.Gpu;
@@ -279,8 +280,11 @@ namespace Ryujinx.Ava
{
lock (_lockObject)
{
+ string applicationName = Device.Processes.ActiveApplication.Name;
+ string sanitizedApplicationName = FileSystemUtils.SanitizeFileName(applicationName);
DateTime currentTime = DateTime.Now;
- string filename = $"ryujinx_capture_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
+
+ string filename = $"{sanitizedApplicationName}_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
string directory = AppDataManager.Mode switch
{