mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2025-08-30 07:25:05 +00:00
Some checks are pending
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
This allows the user to change the controller LED while using Ryujinx. Useful for PS4 and PS5 controllers as an example. You can also use a spectrum-cycling Rainbow color option, or turn the LED off for DualSense controllers. --------- Co-authored-by: Evan Husted <greem@greemdev.net>
64 lines
1.5 KiB
C#
64 lines
1.5 KiB
C#
using Ryujinx.SDL2.Common;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Ryujinx.Input.SDL2
|
|
{
|
|
public class SDL2KeyboardDriver : IGamepadDriver
|
|
{
|
|
public SDL2KeyboardDriver()
|
|
{
|
|
SDL2Driver.Instance.Initialize();
|
|
}
|
|
|
|
public string DriverName => "SDL2";
|
|
|
|
private static readonly string[] _keyboardIdentifers = new string[1] { "0" };
|
|
|
|
public ReadOnlySpan<string> GamepadsIds => _keyboardIdentifers;
|
|
|
|
public event Action<string> OnGamepadConnected
|
|
{
|
|
add { }
|
|
remove { }
|
|
}
|
|
|
|
public event Action<string> OnGamepadDisconnected
|
|
{
|
|
add { }
|
|
remove { }
|
|
}
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
SDL2Driver.Instance.Dispose();
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
GC.SuppressFinalize(this);
|
|
Dispose(true);
|
|
}
|
|
|
|
public IGamepad GetGamepad(string id)
|
|
{
|
|
if (!_keyboardIdentifers[0].Equals(id))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return new SDL2Keyboard(this, _keyboardIdentifers[0], "All keyboards");
|
|
}
|
|
|
|
public IEnumerable<IGamepad> GetGamepads()
|
|
{
|
|
foreach (var keyboardId in _keyboardIdentifers)
|
|
{
|
|
yield return GetGamepad(keyboardId);
|
|
}
|
|
}
|
|
}
|
|
}
|