public string RemoveDevice(string UniqueKey) { lock (Controllers) { if (!DeviceToControllerKeyMap.ContainsKey(UniqueKey)) { return(null); } Guid DeviceParent = DeviceToControllerKeyMap[UniqueKey]; foreach (string DeviceKey in ControllerToDeviceKeyMap[DeviceParent]) { if (DeviceToControllerKeyMap.ContainsKey(DeviceKey)) { DeviceToControllerKeyMap.Remove(DeviceKey); } } DualShock4Controller ctrl = Controllers[DeviceParent]; string UniqueControllerId = ctrl.ConnectionUniqueID; ctrl.DeInitalize(); ctrl.Dispose(); Controllers.Remove(DeviceParent); ControllerToDeviceKeyMap.Remove(DeviceParent); return(UniqueControllerId); } }
public override void Disconnect() { if (forceFeedbackCall != null) { cont.FeedbackReceived -= forceFeedbackCall; forceFeedbackCall = null; } cont.Disconnect(); cont.Dispose(); cont = null; }