steam-deck-tools/SteamController/Managers/SteamManager.cs

57 lines
1.7 KiB
C#
Raw Normal View History

using System.Diagnostics;
using SteamController.Helpers;
namespace SteamController.Managers
{
public sealed class SteamManager : Manager
{
private bool lastState;
public override void Tick(Context context)
{
if (!Settings.Default.EnableSteamDetection)
{
context.State.SteamUsesSteamInput = false;
context.State.SteamUsesX360Controller = false;
lastState = false;
return;
}
var usesController = UsesController() ?? false;
if (lastState == usesController)
return;
if (usesController)
{
context.State.SteamUsesSteamInput = Helpers.SteamConfiguration.IsControllerBlacklisted(
Devices.SteamController.VendorID,
Devices.SteamController.ProductID
) != true;
context.State.SteamUsesX360Controller = Helpers.SteamConfiguration.IsControllerBlacklisted(
Devices.Xbox360Controller.VendorID,
Devices.Xbox360Controller.ProductID
) != true;
}
else
{
context.State.SteamUsesSteamInput = false;
context.State.SteamUsesX360Controller = false;
}
lastState = usesController;
}
private bool? UsesController()
{
if (!SteamConfiguration.IsRunning)
return null;
return
SteamConfiguration.IsBigPictureMode.GetValueOrDefault(false) ||
SteamConfiguration.IsRunningGame.GetValueOrDefault(false) ||
SteamConfiguration.IsGamePadUI;
}
}
}