private void Update() { switch (this.m_Mode) { case EmulationMode.Simulated: PerceptionSimulation.SetGestureHand(this.m_Hand); break; case EmulationMode.RemoteDevice: { HolographicStreamerConnectionState connectionState = this.m_ConnectionState; this.m_ConnectionState = PerceptionRemotingPlugin.GetConnectionState(); if (connectionState != this.m_ConnectionState) { base.Repaint(); } HolographicStreamerConnectionFailureReason reason = PerceptionRemotingPlugin.CheckForDisconnect(); if ((reason == HolographicStreamerConnectionFailureReason.Unreachable) || (reason == HolographicStreamerConnectionFailureReason.ConnectionLost)) { Debug.LogWarning("Disconnected with failure reason " + reason + ", attempting to reconnect."); this.Connect(); } else if (reason != HolographicStreamerConnectionFailureReason.None) { Debug.LogError("Disconnected with error " + reason); } break; } } }
void Update() { switch (m_Mode) { case EmulationMode.Simulated: HolographicEmulation.SetGestureHand(m_Hand); break; case EmulationMode.RemoteDevice: HolographicStreamerConnectionState connectionState = PerceptionRemotingPlugin.GetConnectionState(); if (connectionState != m_LastConnectionState) { Repaint(); } var lastConnectionFailureReason = PerceptionRemotingPlugin.CheckForDisconnect(); if (lastConnectionFailureReason == HolographicStreamerConnectionFailureReason.Unreachable || lastConnectionFailureReason == HolographicStreamerConnectionFailureReason.ConnectionLost) { Debug.LogWarning("Disconnected with failure reason " + lastConnectionFailureReason + ", attempting to reconnect."); Connect(); } else if (lastConnectionFailureReason != HolographicStreamerConnectionFailureReason.None) { Debug.LogError("Disconnected with error " + lastConnectionFailureReason); } m_LastConnectionState = connectionState; break; } }
private void Update() { EmulationMode mode = this.m_Mode; if (mode != EmulationMode.Simulated) { if (mode == EmulationMode.RemoteDevice) { HolographicStreamerConnectionState connectionState = PerceptionRemotingPlugin.GetConnectionState(); if (connectionState != this.m_LastConnectionState) { base.Repaint(); } HolographicStreamerConnectionFailureReason holographicStreamerConnectionFailureReason = PerceptionRemotingPlugin.CheckForDisconnect(); if (holographicStreamerConnectionFailureReason == HolographicStreamerConnectionFailureReason.Unreachable || holographicStreamerConnectionFailureReason == HolographicStreamerConnectionFailureReason.ConnectionLost) { Debug.LogWarning("Disconnected with failure reason " + holographicStreamerConnectionFailureReason + ", attempting to reconnect."); this.Connect(); } else if (holographicStreamerConnectionFailureReason != HolographicStreamerConnectionFailureReason.None) { Debug.LogError("Disconnected with error " + holographicStreamerConnectionFailureReason); } this.m_LastConnectionState = connectionState; } } else { HolographicEmulation.SetGestureHand(this.m_Hand); } }
private void HandleButtonPress() { if (EditorApplication.isPlayingOrWillChangePlaymode) { Debug.LogError("Unable to connect / disconnect remoting while playing."); } else { HolographicStreamerConnectionState connectionState = PerceptionRemotingPlugin.GetConnectionState(); if (connectionState == HolographicStreamerConnectionState.Connecting || connectionState == HolographicStreamerConnectionState.Connected) { this.Disconnect(); } else if (this.RemoteMachineNameSpecified) { this.Connect(); } else { Debug.LogError("Cannot connect without a remote machine address specified"); } } }
void Update() { if (!IsWindowsMixedRealityCurrentTarget()) { return; } switch (m_Mode) { case EmulationMode.None: break; case EmulationMode.Simulated: HolographicAutomation.SetPlaymodeInputType(m_InputType); break; case EmulationMode.RemoteDevice: HolographicStreamerConnectionState connectionState = PerceptionRemoting.GetConnectionState(); if (connectionState != m_LastConnectionState) { Repaint(); } var lastConnectionFailureReason = PerceptionRemoting.CheckForDisconnect(); if (lastConnectionFailureReason == HolographicStreamerConnectionFailureReason.Unreachable || lastConnectionFailureReason == HolographicStreamerConnectionFailureReason.ConnectionLost) { Debug.LogWarning("Disconnected with failure reason " + lastConnectionFailureReason + ", attempting to reconnect."); Connect(); } else if (lastConnectionFailureReason != HolographicStreamerConnectionFailureReason.None) { Debug.LogError("Disconnected with error " + lastConnectionFailureReason); } m_LastConnectionState = connectionState; break; } }
void ConnectionStateGUI() { if (s_ConnectedTexture == null) { s_ConnectedTexture = EditorGUIUtility.LoadIconRequired("sv_icon_dot3_sml"); s_ConnectingTexture = EditorGUIUtility.LoadIconRequired("sv_icon_dot4_sml"); s_DisconnectedTexture = EditorGUIUtility.LoadIconRequired("sv_icon_dot6_sml"); } Texture2D iconTexture; GUIContent labelContent; GUIContent buttonContent; HolographicStreamerConnectionState connectionState = PerceptionRemotingPlugin.GetConnectionState(); switch (connectionState) { case HolographicStreamerConnectionState.Disconnected: default: iconTexture = s_DisconnectedTexture; labelContent = s_ConnectionStateDisconnectedText; buttonContent = s_ConnectionButtonConnectText; break; case HolographicStreamerConnectionState.Connecting: iconTexture = s_ConnectingTexture; labelContent = s_ConnectionStateConnectingText; buttonContent = s_ConnectionButtonDisconnectText; break; case HolographicStreamerConnectionState.Connected: iconTexture = s_ConnectedTexture; labelContent = s_ConnectionStateConnectedText; buttonContent = s_ConnectionButtonDisconnectText; break; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(s_ConnectionStatusText, "Button"); float iconSize = EditorGUIUtility.singleLineHeight; Rect iconRect = GUILayoutUtility.GetRect(iconSize, iconSize, GUILayout.ExpandWidth(false)); GUI.DrawTexture(iconRect, iconTexture); EditorGUILayout.LabelField(labelContent); EditorGUILayout.EndHorizontal(); EditorGUI.BeginDisabledGroup(m_InPlayMode); bool pressed = EditorGUILayout.DropdownButton(buttonContent, FocusType.Passive, EditorStyles.miniButton); EditorGUI.EndDisabledGroup(); if (pressed) { if (EditorGUIUtility.editingTextField) { EditorGUIUtility.editingTextField = false; GUIUtility.keyboardControl = 0; } //we delay the call to let the RemoteMachineAddress control commit the value EditorApplication.CallDelayed(() => { HandleButtonPress(); }, 0f); } }