/// <summary> /// Disconnects the gamepad. /// </summary> /// <param name="data">The data.</param> private void RemoveGamepad(EliteGamepad data) { if (this.gamepad == data) { this.IsReady = false; } }
/// <summary> /// Disconnects the gamepad. /// </summary> /// <param name="data">The data.</param> private void RemoveGamepad(EliteGamepad data) { if (this.gamepadId == data.FriendlyName) { this.IsReady = false; } }
/// <summary> /// Connects the gamepad. /// </summary> /// <param name="gamepad">The gamepad.</param> private void EnsureGamepadInitialized(EliteGamepad gamepad) { lock (this.gamepadLock) { EliteGamepad.CheckForDriverLoaded(); this.gamepad = gamepad; this.IsReady = true; } }
/// <summary> /// Tries the create. /// </summary> /// <param name="gamepadFriendlyName">ID of the game pad trying to be created.</param> /// <param name="gamepad">The gamepad.</param> /// <returns>True if a gamepad was created successfully; otherwise, false.</returns> public static bool TryCreate(string gamepadFriendlyName, out EliteGamepadAdapter gamepad) { EliteGamepad.CheckForDriverLoaded(); var underlying = EliteGamepad.EliteGamepads.FirstOrDefault(g => g.FriendlyName == gamepadFriendlyName); if (underlying == null) { gamepad = null; return(false); } gamepad = new EliteGamepadAdapter(underlying); return(true); }
/// <summary> /// Tries to create a gamepad. /// </summary> /// <param name="gamepad">The gamepad.</param> /// <returns>True if a gamepad was created successfully; otherwise, false.</returns> public static bool TryCreate(out EliteGamepadAdapter gamepad) { EliteGamepad.CheckForDriverLoaded(); var underlying = EliteGamepad.EliteGamepads.FirstOrDefault(); if (underlying == null) { gamepad = null; return(false); } var config = underlying.GetConfiguration(underlying.CurrentSlotId); gamepad = new EliteGamepadAdapter(underlying); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="EliteGamepadAdapter"/> class. /// </summary> /// <param name="gamepad">The gamepad.</param> private EliteGamepadAdapter(EliteGamepad gamepad) { this.gamepad = gamepad; this.gamepadId = gamepad.FriendlyName; this.IsReady = true; // Should make this disposable so they get removed, but it should never be a problem unless somebody is being naughty or ambitious :) EliteGamepad.EliteGamepadAdded += (sender, data) => { this.EnsureGamepadInitialized(data); }; EliteGamepad.EliteGamepadRemoved += (sender, data) => { this.RemoveGamepad(data); }; }
/// <summary> /// Tries to create a gamepad. /// </summary> /// <param name="gamepad">The gamepad.</param> /// <returns>True if a gamepad was created successfully; otherwise, false.</returns> public static bool TryCreate(out EliteGamepadAdapter gamepad) { EliteGamepad.CheckForDriverLoaded(); var underlying = EliteGamepad.EliteGamepads.FirstOrDefault(); if (underlying == null) { gamepad = null; return false; } gamepad = new EliteGamepadAdapter(underlying); return true; }