// If a stick has no bindings associated with it, remove it from the Dictionary, so the Monitor thread does not poll it private bool RemoveStickIfEmpty(Guid guid) { if (DirectXSticks[guid].IsEmpty()) { DirectXSticks.Remove(guid); SetMonitorState(); return(true); } return(false); }
public bool Remove(string guidStr, JoystickOffset offset, string id, int povDirection = 0) { Guid guid = new Guid(guidStr); if (!DirectXSticks.ContainsKey(guid)) { return(false); } var ret = DirectXSticks[guid].Remove(offset, id, povDirection); RemoveStickIfEmpty(guid); return(ret); }
// DirectInput public bool RegisterStick(string guidStr) { Guid guid = new Guid(guidStr); Joystick joystick; if (!DirectXSticks.ContainsKey(guid)) { try { joystick = new Joystick(directInput, guid); } catch { return(false); } var stick = new SubscribedDirectXStick(joystick); DirectXSticks.Add(guid, stick); } return(true); }