SteamController: Fix Steam Big Picture detection for non-english

This commit is contained in:
Kamil Trzciński 2023-02-08 15:40:08 +01:00
parent afb55e6b16
commit 8f31e4ed00
2 changed files with 6 additions and 1 deletions

View file

@ -9,6 +9,7 @@
## 0.6.x
- SteamController: Fix Steam Big Picture detection for non-english
- PowerControl: Allow user to configure selectable TDP, CPU and GPU from `PowerControl.dll.ini`
- SteamController: Promote RTSS detection to Release - enable by default
- SteamController: Improve detection of Steam processes (especially latest controller UI changes)

View file

@ -1,6 +1,7 @@
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using SteamController.Helpers;
namespace SteamController.Managers
@ -13,7 +14,7 @@ namespace SteamController.Managers
new Classifier() { Type = "possiblegamepadui", ClassName = "SDL_app", WindowTextPrefix = "SP", ProcessName = "steamwebhelper" },
// Support Steam client released around 2023-01-20, version: 1674182294
new Classifier() { Type = "gamepadui_2023_01_20", ClassName = "SDL_app", WindowText = "Steam Big Picture Mode", ProcessName = "steamwebhelper" },
new Classifier() { Type = "gamepadui_2023_01_20", ClassName = "SDL_app", ProcessName = "steamwebhelper" },
new Classifier() { Type = "controllerui_2023_01_20", ClassName = "CUIEngineWin32", ProcessName = "steam" },
// new Classifier() { Type = "possiblegamepadui_2023_01_20", ClassName = "SDL_app", WindowTextSuffix = "Controller Layout", ProcessName = "steamwebhelper" },
};
@ -125,6 +126,7 @@ namespace SteamController.Managers
public String? WindowText { get; set; }
public String? WindowTextPrefix { get; set; }
public String? WindowTextSuffix { get; set; }
public Regex? WindowTextRegex { get; set; }
public String? ProcessName { get; set; }
public bool Match(string className, string windowText, string processName)
@ -133,6 +135,8 @@ namespace SteamController.Managers
return false;
if (WindowText is not null && windowText != WindowText)
return false;
if (WindowTextRegex is not null && WindowTextRegex.IsMatch(windowText))
return false;
if (WindowTextPrefix is not null && !windowText.StartsWith(WindowTextPrefix))
return false;
if (WindowTextSuffix is not null && !windowText.EndsWith(WindowTextSuffix))