using System; namespace Ryujinx.Input { /// /// Represent an emulated gamepad driver used to provide input in the emulator. /// public interface IGamepadDriver : IDisposable { /// /// The name of the driver /// string DriverName { get; } /// /// The unique ids of the gamepads connected. /// ReadOnlySpan GamepadsIds { get; } /// /// Event triggered when a gamepad is connected. /// event Action OnGamepadConnected; /// /// Event triggered when a gamepad is disconnected. /// event Action OnGamepadDisconnected; /// /// Open a gampad by its unique id. /// /// The unique id of the gamepad /// An instance of associated to the gamepad id given or null if not found IGamepad GetGamepad(string id); /// /// Clear the internal state of the driver. /// /// Does nothing by default. void Clear() { } } }