IEnumerator TryConnect() { // Setup the connection state information required to make a connection // to the remote device. WindowsMRRemoting.isAudioEnabled = enableAudio; WindowsMRRemoting.isVideoEnabled = enableVideo; WindowsMRRemoting.maxBitRateKbps = maxBitRate; WindowsMRRemoting.remoteMachineName = machineName; WindowsMREmulation.mode = WindowsMREmulationMode.Remoting; Debug.Log($"Connecting to {machineName}..."); WindowsMRRemoting.Connect(); yield return(new WaitForEndOfFrame()); ConnectionState connectionState = ConnectionState.Disconnected; int connectionTryCount = 0; // If connection fails, we'll try again, up to the number of times specified while (WindowsMRRemoting.TryGetConnectionState(out connectionState) && connectionTryCount < connectionRetryCount) { connectionTryCount++; if (connectionState == ConnectionState.Connecting) { Debug.Log($"Still connecting to {machineName}..."); yield return(new WaitForSeconds(1)); continue; } break; } switch (connectionState) { case ConnectionState.Connected: Debug.Log($"Successfully connected to {machineName} after {connectionTryCount} seconds."); // We've connected, so now we need to spin up XR SDK. yield return(XRGeneralSettings.Instance.Manager.InitializeLoader()); if (XRGeneralSettings.Instance.Manager.activeLoader != null) { XRGeneralSettings.Instance.Manager.activeLoader.Start(); } break; case ConnectionState.Disconnected: Debug.LogError($"Unable to connect to {machineName} after {connectionTryCount} seconds"); ConnectionFailureReason failureReason = ConnectionFailureReason.None; WindowsMRRemoting.TryGetConnectionFailureReason(out failureReason); Debug.LogError($"Connection Failure Reason {failureReason}"); break; } }
IEnumerator TryConnect() { WindowsMRRemoting.remoteMachineName = m_RemoteMachineName; WindowsMRRemoting.isAudioEnabled = m_EnableAudio; WindowsMRRemoting.isVideoEnabled = m_EnableVideo; WindowsMRRemoting.maxBitRateKbps = m_MaxBitRateKbps; WindowsMRRemoting.Connect(); yield return(new WaitForEndOfFrame()); ConnectionState connectionState = ConnectionState.Disconnected; int connectionTryCount = 0; while (WindowsMRRemoting.TryGetConnectionState(out connectionState) && connectionTryCount < 30) { connectionTryCount++; if (connectionState == ConnectionState.Connecting) { Debug.Log($"Still connecting to {WindowsMRRemoting.remoteMachineName}..."); yield return(new WaitForSeconds(1)); continue; } break; } switch (connectionState) { case ConnectionState.Connected: Debug.Log($"Successfully connected to {WindowsMRRemoting.remoteMachineName} after {connectionTryCount} seconds."); yield return(XRGeneralSettings.Instance.Manager.InitializeLoader()); if (XRGeneralSettings.Instance.Manager.activeLoader != null) { XRGeneralSettings.Instance.Manager.activeLoader.Start(); } break; case ConnectionState.Disconnected: Debug.LogError($"Unable to connect to {WindowsMRRemoting.remoteMachineName} after {connectionTryCount} seconds"); ConnectionFailureReason failureReason = ConnectionFailureReason.None; WindowsMRRemoting.TryGetConnectionFailureReason(out failureReason); Debug.LogError($"Connection Failure Reason {failureReason}"); break; } }
public ConnectionFailedArgs(ConnectionFailureReason reason) : base() { Reason = reason; }
static bool UnityWindowsMR_Remoting_TryGetConnectionFailureReason(ref ConnectionFailureReason connectionFailureReason) { return(false); }
public static extern bool UnityWindowsMR_Remoting_TryGetConnectionFailureReason(ref ConnectionFailureReason connectionFailureReason);
/// <summary>Try to get the failure reason of the remoting connection</summary> /// <param name="connectionFailureReason">The reason the remoting connection failed</param> /// <returns>True if the connection failure reason was able to be acquired</returns> public static bool TryGetConnectionFailureReason(out ConnectionFailureReason connectionFailureReason) { connectionFailureReason = ConnectionFailureReason.None; return(UnityWindowsMR_Remoting_TryGetConnectionFailureReason(ref connectionFailureReason)); }
internal ConnectionAttemptFailedEventArgs(Peer peer, ConnectionFailureReason reason, TorrentManager manager) : base(manager) { Peer = peer; Reason = reason; }