Introduce inheritable Profiles and Managers

- There's always a single Profile choosen
- There are many Managers changing settings
  depending on environment
- Improve and re-use mappings between profiles
- Introduce Steam Profile to be used when
  in Steam Big Picture or Steam Game
This commit is contained in:
Kamil Trzciński 2022-11-25 10:56:17 +01:00
parent 10d6c055da
commit ab5bc370df
21 changed files with 530 additions and 311 deletions

View file

@ -0,0 +1,47 @@
using System.Diagnostics;
namespace SteamController.Managers
{
public sealed class ProcessManager : Manager
{
public static readonly String[] ActivationProcessNames = new String[]
{
"Playnite.FullscreenApp"
};
private bool activated;
private Process? FindActivationProcess()
{
foreach (var processName in ActivationProcessNames)
{
var process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process is not null)
return process;
}
return null;
}
public override void Tick(Context context)
{
// React to state change
if (FindActivationProcess() is not null)
{
if (!activated)
{
activated = true;
context.RequestDesktopMode = false;
}
}
else
{
if (activated)
{
activated = false;
context.RequestDesktopMode = true;
}
}
}
}
}