steam-deck-tools/SteamController/Settings.cs

125 lines
4.2 KiB
C#
Raw Permalink Normal View History

2022-12-02 11:27:45 +01:00
using System.ComponentModel;
using System.Configuration;
namespace SteamController
{
[Category("1. Settings")]
2022-12-02 11:27:45 +01:00
[TypeConverter(typeof(ExpandableObjectConverter))]
internal sealed partial class Settings : CommonHelpers.BaseSettings
2022-12-02 11:27:45 +01:00
{
public static readonly Settings Default = new Settings();
2022-12-02 11:27:45 +01:00
public Settings() : base("Settings")
2022-12-02 11:27:45 +01:00
{
}
[Browsable(false)]
public bool? EnableSteamDetection
2022-12-02 11:27:45 +01:00
{
get { return Get<bool?>("EnableSteamDetection", null); }
set { Set("EnableSteamDetection", value); }
2022-12-02 11:27:45 +01:00
}
[Description("Keep X360 controller connected always - it is strongly advised to disable this option. Might be required by some games that do not like disonnecting controller. Will disable beep notifications.")]
public bool KeepX360AlwaysConnected
{
get { return Get<bool>("KeepX360AlwaysConnected", false); }
set { Set("KeepX360AlwaysConnected", value); }
}
[Description("Enable DS4 support. If disabled the DS4 will be hidden.")]
public bool EnableDS4Support
{
get { return Get<bool>("EnableDS4Support", true); }
set { Set("EnableDS4Support", value); }
}
[Description("If current foreground process uses overlay, treat it as a game.")]
public bool DetectRTSSForeground
{
get { return Get<bool>("DetectRTSSForeground", false); }
set { Set("DetectRTSSForeground", value); }
}
[Description("Create a debug log in Documents/SteamDeckTools/Logs.")]
public bool EnableDebugLogging
{
get { return Get<bool>("EnableDebugLogging", false); }
set { Set("EnableDebugLogging", value); CommonHelpers.Log.LogToFileDebug = value; }
}
2022-12-04 20:32:23 +01:00
[Description("Default profile used when going back to Desktop mode")]
[Browsable(true)]
[TypeConverter(typeof(ProfilesSettings.Helpers.ProfileStringConverter))]
public string DefaultProfile
2022-12-02 11:27:45 +01:00
{
get { return Get<string>("DefaultProfile", "Desktop"); }
set { Set("DefaultProfile", value); }
2022-12-02 11:27:45 +01:00
}
2022-12-04 20:39:00 +01:00
public enum ScrollMode : int
{
DownScrollUp = -1,
DownScrollDown = 1
}
[Description("Scroll direction for right pad and joystick.")]
[Browsable(true)]
2022-12-04 20:39:00 +01:00
public ScrollMode ScrollDirection
{
get { return Get<ScrollMode>("ScrollDirection", ScrollMode.DownScrollDown); }
set { Set("ScrollDirection", value); }
2022-12-04 20:39:00 +01:00
}
public enum SteamControllerConfigsMode
{
DoNotTouch,
Overwrite
}
[Browsable(true)]
[Description("This does replace Steam configuration for controllers to prevent double inputs. " +
"Might require going to Steam > Settings > Controller > Desktop to apply " +
"'SteamController provided empty configuration'.")]
public SteamControllerConfigsMode SteamControllerConfigs
{
get { return Get<SteamControllerConfigsMode>("SteamControllerConfigs", SteamControllerConfigsMode.Overwrite); }
set { Set("SteamControllerConfigs", value); }
}
public enum KeyboardStyles
{
DoNotShow,
WindowsTouch,
CTRL_WIN_O
}
[Browsable(true)]
[Description("Show Touch Keyboard or CTRL+WIN+O")]
public KeyboardStyles KeyboardStyle
{
get { return Get<KeyboardStyles>("KeyboardStyle", KeyboardStyles.WindowsTouch); }
set { Set("KeyboardStyle", value); }
}
[Browsable(false)]
public short DesktopJoystickDeadzone
{
get { return 5000; }
}
[Browsable(true)]
[Description("Deadzone for Left and Right sticks. Enter a number between 0 and 32767. If this number is too small you may experience drift. 5000 or smaller is recommended.")]
public short JoystickDeadzone
{
get { return Get<short>("JoystickDeadZone", 5000); }
set { Set("JoystickDeadZone", value); }
}
2022-12-02 11:27:45 +01:00
public override string ToString()
{
return "";
}
}
}