void OnCloseChannel(RTCDataChannel channel) { RemoteInput input = m_mapChannelAndRemoteInput[channel]; RemoteInputReceiver.Delete(input); // device.current must be changed after removing devices m_defaultInput.MakeCurrent(); // reassign remote input to controller if (m_remoteInputAndCameraController.TryGetValue(input, out var controller)) { RemoteInput newInput = FindPrioritizedInput(); if (newInput == null) { controller.SetInput(m_defaultInput); } else { controller.SetInput(newInput); m_remoteInputAndCameraController.Add(newInput, controller); } } m_remoteInputAndCameraController.Remove(input); m_mapChannelAndRemoteInput.Remove(channel); }
public void Dispose() { if (this.disposed) { return; } RemoteInputReceiver.Delete(this); this.disposed = true; GC.SuppressFinalize(this); }