Avalonia UI - Part 1 (#3270)
* avalonia part 1 * remove vulkan ui backend * move ui common files to ui common project * get name for oading screen from device * rebase. * review 1 * review 1.1 * review * cleanup * addressed review * use cancellation token * review * review * rebased * cancel library loading when closing window * remove star image, use fonticon instead * delete render control frame buffer when game ends. change position of fav star * addressed @Thog review * ensure the right ui is downloaded in updates * fix crash when showing not supported dialog during controller request * add prefix to artifact names * Auto-format Avalonia project * Fix input * Fix build, simplify app disposal * remove nv stutter thread * addressed review * add missing change * maintain window size if new size is zero length * add game, handheld, docked to local * reverse scale main window * Update de_DE.json * Update de_DE.json * Update de_DE.json * Update italian json * Update it_IT.json * let render timer poll with no wait * remove unused code * more unused code * enabled tiered compilation and trimming * check if window event is not closed before signaling * fix atmospher case * locale fix * locale fix * remove explicit tiered compilation declarations * Remove ) it_IT.json * Remove ) de_DE.json * Update it_IT.json * Update pt_BR locale with latest strings * Remove ')' * add more strings to locale * update locale * remove extra slash * remove extra slash * set firmware version to 0 if key's not found * fix * revert timer changes * lock on object instead * Update it_IT.json * remove unused method * add load screen text to locale * drop swap event * Update de_DE.json * Update de_DE.json * do null check when stopping emulator * Update de_DE.json * Create tr_TR.json * Add tr_TR * Add tr_TR + Turkish * Update it_IT.json * Update Ryujinx.Ava/Input/AvaloniaMappingHelper.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * addressed review * Update Ryujinx.Ava/Ui/Backend/OpenGl/OpenGlRenderTarget.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * use avalonia's inbuilt renderer on linux * removed whitespace * workaround for queue render crash with vsync off * drop custom backend * format files * fix not closing issue * remove warnings * rebase * update avalonia library * Reposition the Text and Button on About Page * Assign build version * Remove appveyor text Co-authored-by: gdk <gab.dark.100@gmail.com> Co-authored-by: Niwu34 <67392333+Niwu34@users.noreply.github.com> Co-authored-by: Antonio Brugnolo <36473846+AntoSkate@users.noreply.github.com> Co-authored-by: aegiff <99728970+aegiff@users.noreply.github.com> Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: MostlyWhat <78652091+MostlyWhat@users.noreply.github.com>
This commit is contained in:
parent
9ba73ffbe5
commit
deb99d2cae
161 changed files with 17179 additions and 855 deletions
456
Ryujinx.Ava/Ui/Models/InputConfiguration.cs
Normal file
456
Ryujinx.Ava/Ui/Models/InputConfiguration.cs
Normal file
|
@ -0,0 +1,456 @@
|
|||
using Ryujinx.Ava.Ui.ViewModels;
|
||||
using Ryujinx.Common.Configuration.Hid;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller;
|
||||
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
|
||||
using Ryujinx.Common.Configuration.Hid.Keyboard;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Ava.Ui.Models
|
||||
{
|
||||
public class InputConfiguration<Key, Stick> : BaseModel
|
||||
{
|
||||
private float _deadzoneRight;
|
||||
private float _triggerThreshold;
|
||||
private float _deadzoneLeft;
|
||||
private double _gyroDeadzone;
|
||||
private int _sensitivity;
|
||||
private bool enableMotion;
|
||||
private float weakRumble;
|
||||
private float strongRumble;
|
||||
private float _rangeLeft;
|
||||
private float _rangeRight;
|
||||
|
||||
public InputBackendType Backend { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller id
|
||||
/// </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Controller's Type
|
||||
/// </summary>
|
||||
public ControllerType ControllerType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Player's Index for the controller
|
||||
/// </summary>
|
||||
public PlayerIndex PlayerIndex { get; set; }
|
||||
|
||||
public Stick LeftJoystick { get; set; }
|
||||
public bool LeftInvertStickX { get; set; }
|
||||
public bool LeftInvertStickY { get; set; }
|
||||
public bool RightRotate90 { get; set; }
|
||||
public Key LeftControllerStickButton { get; set; }
|
||||
|
||||
public Stick RightJoystick { get; set; }
|
||||
public bool RightInvertStickX { get; set; }
|
||||
public bool RightInvertStickY { get; set; }
|
||||
public bool LeftRotate90 { get; set; }
|
||||
public Key RightControllerStickButton { get; set; }
|
||||
|
||||
public float DeadzoneLeft
|
||||
{
|
||||
get => _deadzoneLeft;
|
||||
set
|
||||
{
|
||||
_deadzoneLeft = MathF.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float RangeLeft
|
||||
{
|
||||
get => _rangeLeft;
|
||||
set
|
||||
{
|
||||
_rangeLeft = MathF.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float DeadzoneRight
|
||||
{
|
||||
get => _deadzoneRight;
|
||||
set
|
||||
{
|
||||
_deadzoneRight = MathF.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float RangeRight
|
||||
{
|
||||
get => _rangeRight;
|
||||
set
|
||||
{
|
||||
_rangeRight = MathF.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public float TriggerThreshold
|
||||
{
|
||||
get => _triggerThreshold;
|
||||
set
|
||||
{
|
||||
_triggerThreshold = MathF.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public MotionInputBackendType MotionBackend { get; set; }
|
||||
|
||||
public Key ButtonMinus { get; set; }
|
||||
public Key ButtonL { get; set; }
|
||||
public Key ButtonZl { get; set; }
|
||||
public Key LeftButtonSl { get; set; }
|
||||
public Key LeftButtonSr { get; set; }
|
||||
public Key DpadUp { get; set; }
|
||||
public Key DpadDown { get; set; }
|
||||
public Key DpadLeft { get; set; }
|
||||
public Key DpadRight { get; set; }
|
||||
|
||||
public Key ButtonPlus { get; set; }
|
||||
public Key ButtonR { get; set; }
|
||||
public Key ButtonZr { get; set; }
|
||||
public Key RightButtonSl { get; set; }
|
||||
public Key RightButtonSr { get; set; }
|
||||
public Key ButtonX { get; set; }
|
||||
public Key ButtonB { get; set; }
|
||||
public Key ButtonY { get; set; }
|
||||
public Key ButtonA { get; set; }
|
||||
|
||||
|
||||
public Key LeftStickUp { get; set; }
|
||||
public Key LeftStickDown { get; set; }
|
||||
public Key LeftStickLeft { get; set; }
|
||||
public Key LeftStickRight { get; set; }
|
||||
public Key LeftKeyboardStickButton { get; set; }
|
||||
|
||||
public Key RightStickUp { get; set; }
|
||||
public Key RightStickDown { get; set; }
|
||||
public Key RightStickLeft { get; set; }
|
||||
public Key RightStickRight { get; set; }
|
||||
public Key RightKeyboardStickButton { get; set; }
|
||||
|
||||
public int Sensitivity
|
||||
{
|
||||
get => _sensitivity;
|
||||
set
|
||||
{
|
||||
_sensitivity = value;
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public double GyroDeadzone
|
||||
{
|
||||
get => _gyroDeadzone;
|
||||
set
|
||||
{
|
||||
_gyroDeadzone = Math.Round(value, 3);
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public bool EnableMotion
|
||||
{
|
||||
get => enableMotion; set
|
||||
{
|
||||
enableMotion = value;
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public bool EnableCemuHookMotion { get; set; }
|
||||
public int Slot { get; set; }
|
||||
public int AltSlot { get; set; }
|
||||
public bool MirrorInput { get; set; }
|
||||
public string DsuServerHost { get; set; }
|
||||
public int DsuServerPort { get; set; }
|
||||
|
||||
public bool EnableRumble { get; set; }
|
||||
public float WeakRumble
|
||||
{
|
||||
get => weakRumble; set
|
||||
{
|
||||
weakRumble = value;
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
public float StrongRumble
|
||||
{
|
||||
get => strongRumble; set
|
||||
{
|
||||
strongRumble = value;
|
||||
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public InputConfiguration(InputConfig config)
|
||||
{
|
||||
if (config != null)
|
||||
{
|
||||
Backend = config.Backend;
|
||||
Id = config.Id;
|
||||
ControllerType = config.ControllerType;
|
||||
PlayerIndex = config.PlayerIndex;
|
||||
|
||||
if (config is StandardKeyboardInputConfig keyboardConfig)
|
||||
{
|
||||
LeftStickUp = (Key)(object)keyboardConfig.LeftJoyconStick.StickUp;
|
||||
LeftStickDown = (Key)(object)keyboardConfig.LeftJoyconStick.StickDown;
|
||||
LeftStickLeft = (Key)(object)keyboardConfig.LeftJoyconStick.StickLeft;
|
||||
LeftStickRight = (Key)(object)keyboardConfig.LeftJoyconStick.StickRight;
|
||||
LeftKeyboardStickButton = (Key)(object)keyboardConfig.LeftJoyconStick.StickButton;
|
||||
|
||||
RightStickUp = (Key)(object)keyboardConfig.RightJoyconStick.StickUp;
|
||||
RightStickDown = (Key)(object)keyboardConfig.RightJoyconStick.StickDown;
|
||||
RightStickLeft = (Key)(object)keyboardConfig.RightJoyconStick.StickLeft;
|
||||
RightStickRight = (Key)(object)keyboardConfig.RightJoyconStick.StickRight;
|
||||
RightKeyboardStickButton = (Key)(object)keyboardConfig.RightJoyconStick.StickButton;
|
||||
|
||||
ButtonA = (Key)(object)keyboardConfig.RightJoycon.ButtonA;
|
||||
ButtonB = (Key)(object)keyboardConfig.RightJoycon.ButtonB;
|
||||
ButtonX = (Key)(object)keyboardConfig.RightJoycon.ButtonX;
|
||||
ButtonY = (Key)(object)keyboardConfig.RightJoycon.ButtonY;
|
||||
ButtonR = (Key)(object)keyboardConfig.RightJoycon.ButtonR;
|
||||
RightButtonSl = (Key)(object)keyboardConfig.RightJoycon.ButtonSl;
|
||||
RightButtonSr = (Key)(object)keyboardConfig.RightJoycon.ButtonSr;
|
||||
ButtonZr = (Key)(object)keyboardConfig.RightJoycon.ButtonZr;
|
||||
ButtonPlus = (Key)(object)keyboardConfig.RightJoycon.ButtonPlus;
|
||||
|
||||
DpadUp = (Key)(object)keyboardConfig.LeftJoycon.DpadUp;
|
||||
DpadDown = (Key)(object)keyboardConfig.LeftJoycon.DpadDown;
|
||||
DpadLeft = (Key)(object)keyboardConfig.LeftJoycon.DpadLeft;
|
||||
DpadRight = (Key)(object)keyboardConfig.LeftJoycon.DpadRight;
|
||||
ButtonMinus = (Key)(object)keyboardConfig.LeftJoycon.ButtonMinus;
|
||||
LeftButtonSl = (Key)(object)keyboardConfig.LeftJoycon.ButtonSl;
|
||||
LeftButtonSr = (Key)(object)keyboardConfig.LeftJoycon.ButtonSr;
|
||||
ButtonZl = (Key)(object)keyboardConfig.LeftJoycon.ButtonZl;
|
||||
ButtonL = (Key)(object)keyboardConfig.LeftJoycon.ButtonL;
|
||||
}
|
||||
else if (config is StandardControllerInputConfig controllerConfig)
|
||||
{
|
||||
LeftJoystick = (Stick)(object)controllerConfig.LeftJoyconStick.Joystick;
|
||||
LeftInvertStickX = controllerConfig.LeftJoyconStick.InvertStickX;
|
||||
LeftInvertStickY = controllerConfig.LeftJoyconStick.InvertStickY;
|
||||
LeftRotate90 = controllerConfig.LeftJoyconStick.Rotate90CW;
|
||||
LeftControllerStickButton = (Key)(object)controllerConfig.LeftJoyconStick.StickButton;
|
||||
|
||||
RightJoystick = (Stick)(object)controllerConfig.RightJoyconStick.Joystick;
|
||||
RightInvertStickX = controllerConfig.RightJoyconStick.InvertStickX;
|
||||
RightInvertStickY = controllerConfig.RightJoyconStick.InvertStickY;
|
||||
RightRotate90 = controllerConfig.RightJoyconStick.Rotate90CW;
|
||||
RightControllerStickButton = (Key)(object)controllerConfig.RightJoyconStick.StickButton;
|
||||
|
||||
ButtonA = (Key)(object)controllerConfig.RightJoycon.ButtonA;
|
||||
ButtonB = (Key)(object)controllerConfig.RightJoycon.ButtonB;
|
||||
ButtonX = (Key)(object)controllerConfig.RightJoycon.ButtonX;
|
||||
ButtonY = (Key)(object)controllerConfig.RightJoycon.ButtonY;
|
||||
ButtonR = (Key)(object)controllerConfig.RightJoycon.ButtonR;
|
||||
RightButtonSl = (Key)(object)controllerConfig.RightJoycon.ButtonSl;
|
||||
RightButtonSr = (Key)(object)controllerConfig.RightJoycon.ButtonSr;
|
||||
ButtonZr = (Key)(object)controllerConfig.RightJoycon.ButtonZr;
|
||||
ButtonPlus = (Key)(object)controllerConfig.RightJoycon.ButtonPlus;
|
||||
|
||||
DpadUp = (Key)(object)controllerConfig.LeftJoycon.DpadUp;
|
||||
DpadDown = (Key)(object)controllerConfig.LeftJoycon.DpadDown;
|
||||
DpadLeft = (Key)(object)controllerConfig.LeftJoycon.DpadLeft;
|
||||
DpadRight = (Key)(object)controllerConfig.LeftJoycon.DpadRight;
|
||||
ButtonMinus = (Key)(object)controllerConfig.LeftJoycon.ButtonMinus;
|
||||
LeftButtonSl = (Key)(object)controllerConfig.LeftJoycon.ButtonSl;
|
||||
LeftButtonSr = (Key)(object)controllerConfig.LeftJoycon.ButtonSr;
|
||||
ButtonZl = (Key)(object)controllerConfig.LeftJoycon.ButtonZl;
|
||||
ButtonL = (Key)(object)controllerConfig.LeftJoycon.ButtonL;
|
||||
|
||||
DeadzoneLeft = controllerConfig.DeadzoneLeft;
|
||||
DeadzoneRight = controllerConfig.DeadzoneRight;
|
||||
RangeLeft = controllerConfig.RangeLeft;
|
||||
RangeRight = controllerConfig.RangeRight;
|
||||
TriggerThreshold = controllerConfig.TriggerThreshold;
|
||||
|
||||
if (controllerConfig.Motion != null)
|
||||
{
|
||||
EnableMotion = controllerConfig.Motion.EnableMotion;
|
||||
MotionBackend = controllerConfig.Motion.MotionBackend;
|
||||
GyroDeadzone = controllerConfig.Motion.GyroDeadzone;
|
||||
Sensitivity = controllerConfig.Motion.Sensitivity;
|
||||
|
||||
if (controllerConfig.Motion is CemuHookMotionConfigController cemuHook)
|
||||
{
|
||||
EnableCemuHookMotion = true;
|
||||
DsuServerHost = cemuHook.DsuServerHost;
|
||||
DsuServerPort = cemuHook.DsuServerPort;
|
||||
Slot = cemuHook.Slot;
|
||||
AltSlot = cemuHook.AltSlot;
|
||||
MirrorInput = cemuHook.MirrorInput;
|
||||
}
|
||||
|
||||
if (controllerConfig.Rumble != null)
|
||||
{
|
||||
EnableRumble = controllerConfig.Rumble.EnableRumble;
|
||||
WeakRumble = controllerConfig.Rumble.WeakRumble;
|
||||
StrongRumble = controllerConfig.Rumble.StrongRumble;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public InputConfiguration()
|
||||
{
|
||||
}
|
||||
|
||||
public InputConfig GetConfig()
|
||||
{
|
||||
if (Backend == InputBackendType.WindowKeyboard)
|
||||
{
|
||||
return new StandardKeyboardInputConfig()
|
||||
{
|
||||
Id = Id,
|
||||
Backend = Backend,
|
||||
PlayerIndex = PlayerIndex,
|
||||
ControllerType = ControllerType,
|
||||
LeftJoycon = new LeftJoyconCommonConfig<Ryujinx.Common.Configuration.Hid.Key>()
|
||||
{
|
||||
DpadUp = (Ryujinx.Common.Configuration.Hid.Key)(object)DpadUp,
|
||||
DpadDown = (Ryujinx.Common.Configuration.Hid.Key)(object)DpadDown,
|
||||
DpadLeft = (Ryujinx.Common.Configuration.Hid.Key)(object)DpadLeft,
|
||||
DpadRight = (Ryujinx.Common.Configuration.Hid.Key)(object)DpadRight,
|
||||
ButtonL = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonL,
|
||||
ButtonZl = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonZl,
|
||||
ButtonSl = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftButtonSl,
|
||||
ButtonSr = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftButtonSr,
|
||||
ButtonMinus = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonMinus
|
||||
},
|
||||
RightJoycon = new RightJoyconCommonConfig<Ryujinx.Common.Configuration.Hid.Key>()
|
||||
{
|
||||
ButtonA = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonA,
|
||||
ButtonB = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonB,
|
||||
ButtonX = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonX,
|
||||
ButtonY = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonY,
|
||||
ButtonPlus = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonPlus,
|
||||
ButtonSl = (Ryujinx.Common.Configuration.Hid.Key)(object)RightButtonSl,
|
||||
ButtonSr = (Ryujinx.Common.Configuration.Hid.Key)(object)RightButtonSr,
|
||||
ButtonR = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonR,
|
||||
ButtonZr = (Ryujinx.Common.Configuration.Hid.Key)(object)ButtonZr
|
||||
},
|
||||
LeftJoyconStick = new JoyconConfigKeyboardStick<Ryujinx.Common.Configuration.Hid.Key>()
|
||||
{
|
||||
StickUp = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftStickUp,
|
||||
StickDown = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftStickDown,
|
||||
StickRight = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftStickRight,
|
||||
StickLeft = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftStickLeft,
|
||||
StickButton = (Ryujinx.Common.Configuration.Hid.Key)(object)LeftKeyboardStickButton
|
||||
},
|
||||
RightJoyconStick = new JoyconConfigKeyboardStick<Ryujinx.Common.Configuration.Hid.Key>()
|
||||
{
|
||||
StickUp = (Ryujinx.Common.Configuration.Hid.Key)(object)RightStickUp,
|
||||
StickDown = (Ryujinx.Common.Configuration.Hid.Key)(object)RightStickDown,
|
||||
StickLeft = (Ryujinx.Common.Configuration.Hid.Key)(object)RightStickLeft,
|
||||
StickRight = (Ryujinx.Common.Configuration.Hid.Key)(object)RightStickRight,
|
||||
StickButton = (Ryujinx.Common.Configuration.Hid.Key)(object)RightKeyboardStickButton
|
||||
},
|
||||
Version = InputConfig.CurrentVersion
|
||||
};
|
||||
|
||||
}
|
||||
else if (Backend == InputBackendType.GamepadSDL2)
|
||||
{
|
||||
var config = new StandardControllerInputConfig()
|
||||
{
|
||||
Id = Id,
|
||||
Backend = Backend,
|
||||
PlayerIndex = PlayerIndex,
|
||||
ControllerType = ControllerType,
|
||||
LeftJoycon = new LeftJoyconCommonConfig<GamepadInputId>()
|
||||
{
|
||||
DpadUp = (GamepadInputId)(object)DpadUp,
|
||||
DpadDown = (GamepadInputId)(object)DpadDown,
|
||||
DpadLeft = (GamepadInputId)(object)DpadLeft,
|
||||
DpadRight = (GamepadInputId)(object)DpadRight,
|
||||
ButtonL = (GamepadInputId)(object)ButtonL,
|
||||
ButtonZl = (GamepadInputId)(object)ButtonZl,
|
||||
ButtonSl = (GamepadInputId)(object)LeftButtonSl,
|
||||
ButtonSr = (GamepadInputId)(object)LeftButtonSr,
|
||||
ButtonMinus = (GamepadInputId)(object)ButtonMinus,
|
||||
},
|
||||
RightJoycon = new RightJoyconCommonConfig<GamepadInputId>()
|
||||
{
|
||||
ButtonA = (GamepadInputId)(object)ButtonA,
|
||||
ButtonB = (GamepadInputId)(object)ButtonB,
|
||||
ButtonX = (GamepadInputId)(object)ButtonX,
|
||||
ButtonY = (GamepadInputId)(object)ButtonY,
|
||||
ButtonPlus = (GamepadInputId)(object)ButtonPlus,
|
||||
ButtonSl = (GamepadInputId)(object)RightButtonSl,
|
||||
ButtonSr = (GamepadInputId)(object)RightButtonSr,
|
||||
ButtonR = (GamepadInputId)(object)ButtonR,
|
||||
ButtonZr = (GamepadInputId)(object)ButtonZr,
|
||||
},
|
||||
LeftJoyconStick = new JoyconConfigControllerStick<GamepadInputId, StickInputId>()
|
||||
{
|
||||
Joystick = (StickInputId)(object)LeftJoystick,
|
||||
InvertStickX = LeftInvertStickX,
|
||||
InvertStickY = LeftInvertStickY,
|
||||
Rotate90CW = LeftRotate90,
|
||||
StickButton = (GamepadInputId)(object)LeftControllerStickButton,
|
||||
},
|
||||
RightJoyconStick = new JoyconConfigControllerStick<GamepadInputId, StickInputId>()
|
||||
{
|
||||
Joystick = (StickInputId)(object)RightJoystick,
|
||||
InvertStickX = RightInvertStickX,
|
||||
InvertStickY = RightInvertStickY,
|
||||
Rotate90CW = RightRotate90,
|
||||
StickButton = (GamepadInputId)(object)RightControllerStickButton,
|
||||
},
|
||||
Rumble = new RumbleConfigController()
|
||||
{
|
||||
EnableRumble = EnableRumble,
|
||||
WeakRumble = WeakRumble,
|
||||
StrongRumble = StrongRumble
|
||||
},
|
||||
Version = InputConfig.CurrentVersion,
|
||||
DeadzoneLeft = DeadzoneLeft,
|
||||
DeadzoneRight = DeadzoneRight,
|
||||
RangeLeft = RangeLeft,
|
||||
RangeRight = RangeRight,
|
||||
TriggerThreshold = TriggerThreshold,
|
||||
Motion = EnableCemuHookMotion
|
||||
? new CemuHookMotionConfigController()
|
||||
{
|
||||
DsuServerHost = DsuServerHost,
|
||||
DsuServerPort = DsuServerPort,
|
||||
Slot = Slot,
|
||||
AltSlot = AltSlot,
|
||||
MirrorInput = MirrorInput,
|
||||
MotionBackend = MotionInputBackendType.CemuHook
|
||||
}
|
||||
: new StandardMotionConfigController()
|
||||
{
|
||||
MotionBackend = MotionInputBackendType.GamepadDriver
|
||||
}
|
||||
};
|
||||
|
||||
config.Motion.Sensitivity = Sensitivity;
|
||||
config.Motion.EnableMotion = EnableMotion;
|
||||
config.Motion.GyroDeadzone = GyroDeadzone;
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue