public static UnityPharusListener NewUnityPharusListenerUDP(string remoteMulticastIpAdress, int localPort) { UnityPharusListener listener = new UnityPharusListener(); listener.m_useUDP = true; listener.m_ipAddress = remoteMulticastIpAdress; listener.m_port = localPort; listener.InitTracking(); return(listener); }
public static UnityPharusListener NewUnityPharusListenerTCP(string remoteServerIpAddress, int localPort) { UnityPharusListener listener = new UnityPharusListener(); listener.m_useUDP = false; listener.m_ipAddress = remoteServerIpAddress; listener.m_port = localPort; listener.InitTracking(); return(listener); }
private IEnumerator InitInstance() { m_initialized = true; Application.runInBackground = true; if (m_pharusSettings.CheckServerReconnectIntervall > 0) { StartCoroutine(CheckServerAlive(m_pharusSettings.CheckServerReconnectIntervall)); } if (m_persistent) { GameObject.DontDestroyOnLoad(this.gameObject); } // start: load config file yield return(StartCoroutine(LoadConfigXML())); // Debug.Log ("UnityPharusManager config loaded, continue InitInstance"); if (m_unityPharusXMLConfig != null) { string configTrackLinkEnabled = null; string configProtocol = null; string configTCPIP = null; string configTCPPort = null; string configUDPMulticastIP = null; string configUDPPort = null; string targetResolutionX = null; string targetResolutionY = null; string stageX = null; string stageY = null; for (int i = 0; i < m_unityPharusXMLConfig.ConfigNodes.Length; i++) { switch (m_unityPharusXMLConfig.ConfigNodes[i].Name) { case "enabled": configTrackLinkEnabled = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "protocol": configProtocol = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "tcp-ip": configTCPIP = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "tcp-port": configTCPPort = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "udp-multicast-ip": configUDPMulticastIP = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "udp-port": configUDPPort = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "targetResolutionX": targetResolutionX = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "targetResolutionY": targetResolutionY = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "stageX": stageX = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; case "stageY": stageY = m_unityPharusXMLConfig.ConfigNodes[i].Value; break; default: break; } } bool configTracklinkBool; if (configTrackLinkEnabled != null && Boolean.TryParse(configTrackLinkEnabled, out configTracklinkBool)) { m_pharusSettings.TracklinkEnabled = configTracklinkBool; Debug.Log(string.Format("XML config: TrackLink enabled: {0}", m_pharusSettings.TracklinkEnabled)); } else { Debug.Log(string.Format("XML config: invalid TrackLink enabled config. Using settings from prefab instead: TrackLink enabled: {0}", m_pharusSettings.TracklinkEnabled)); } if (configProtocol != null) { configProtocol = configProtocol.ToUpper(); switch (configProtocol) { case "UDP": int configUDPPortInt; if (configUDPMulticastIP != null && configUDPPort != null && int.TryParse(configUDPPort, out configUDPPortInt)) { m_pharusSettings.Protocol = PharusSettings.EProtocolType.UDP; m_pharusSettings.UDP_Multicast_IP_Address = configUDPMulticastIP; m_pharusSettings.UDP_Port = configUDPPortInt; Debug.Log(string.Format("XML config: using UDP: {0}:{1}", configUDPMulticastIP, configUDPPort)); } else { Debug.LogWarning("XML config: invalid UDP config data"); } break; case "TCP": int configTCPPortInt; if (configTCPIP != null && configTCPPort != null && int.TryParse(configTCPPort, out configTCPPortInt)) { m_pharusSettings.Protocol = PharusSettings.EProtocolType.TCP; m_pharusSettings.TCP_IP_Address = configTCPIP; m_pharusSettings.TCP_Port = configTCPPortInt; Debug.Log(string.Format("XML config: using TCP: {0}:{1}", configTCPIP, configTCPPort)); } else { Debug.LogWarning("XML config: invalid TCP config data"); } break; default: Debug.LogWarning("XML config: invalid protocol specification"); break; } } else { Debug.LogWarning("XML config: invalid protocol specification"); } int configResolutionIntX; int configResolutionIntY; if (targetResolutionX != null && int.TryParse(targetResolutionX, out configResolutionIntX) && targetResolutionY != null && int.TryParse(targetResolutionY, out configResolutionIntY)) { m_pharusSettings.TargetScreenWidth = configResolutionIntX; m_pharusSettings.TargetScreenHeight = configResolutionIntY; Debug.Log(string.Format("XML config: new target resolution: {0}x{1}", m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight)); } else { Debug.LogWarning(string.Format("XML config: invalid resolution config, using resolution specified in PharusManager prefab instead: {0}x{1}", m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight)); } float configStageFloatX; float configStageFloatY; if (stageX != null && float.TryParse(stageX, out configStageFloatX) && stageY != null && float.TryParse(stageY, out configStageFloatY)) { m_pharusSettings.StageX = configStageFloatX; m_pharusSettings.StageY = configStageFloatY; Debug.Log(string.Format("XML config: new stage size: {0}x{1}", m_pharusSettings.StageX, m_pharusSettings.StageY)); } else { Debug.LogWarning(string.Format("XML config: invalid stage size config, using stage size specified in PharusManager prefab instead: {0}x{1}", m_pharusSettings.StageX, m_pharusSettings.StageY)); } } else { Debug.Log(string.Format("no config xml file found in resources: using default pharus settings ({0})", m_pharusSettings.Protocol.ToString())); } // end: load config file if (!m_pharusSettings.TracklinkEnabled) { Debug.Log("Disable and Destroy UnityPharusManager"); this.enabled = false; Destroy(this); yield break; } if (m_pharusSettings.Protocol == PharusSettings.EProtocolType.TCP) { m_listener = UnityPharusListener.NewUnityPharusListenerTCP(m_pharusSettings.TCP_IP_Address, m_pharusSettings.TCP_Port); } else if (m_pharusSettings.Protocol == PharusSettings.EProtocolType.UDP) { m_listener = UnityPharusListener.NewUnityPharusListenerUDP(m_pharusSettings.UDP_Multicast_IP_Address, m_pharusSettings.UDP_Port); } else { Debug.LogError("Invalid pharus settings!"); yield break; } m_eventProcessor = new UnityPharusEventProcessor(m_listener); if (OnTrackingInitialized != null) { OnTrackingInitialized(this, new EventArgs()); } Screen.SetResolution(m_pharusSettings.TargetScreenWidth, m_pharusSettings.TargetScreenHeight, true); TrackingAdapter.InjectTrackingManager(m_instance); UpdateDebugGUI(); }
public UnityPharusEventProcessor(UnityPharusListener theUnityPharusListener) { m_listener = theUnityPharusListener; }