Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
 public UnityPharusEventProcessor(UnityPharusListener theUnityPharusListener)
 {
     m_listener = theUnityPharusListener;
 }