Exemple #1
0
 bool OnServerStatus(OSCMessage msg)
 {
     if (_serverAddress == null)
     {
         _serverAddress = msg.From;
         OSCManager.SendTo(new OSCMessage("/unity/client/show/join", _clientConfig.Id), msg.From);
     }
     return(true);
 }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        OSCManager.Update();

        if (_theShow != null)
        {
            if ((System.DateTime.Now - _lastStatusTime).TotalSeconds > 5)
            {
                OSCManager.SendToAll(new OSCMessage("/unity/server/status", null));
                _lastStatusTime = System.DateTime.Now;
            }

            if (_timerSeconds > 0)
            {
                System.TimeSpan ts = (System.DateTime.Now - _timerMarker);
                if (ts.TotalSeconds >= _timerSeconds)
                {
                    // Timer expired, go to the next step
                    Show_ExecuteStep();
                }
                else
                {
                    SetSecondaryShowText((_timerSeconds - ts.TotalSeconds).ToString("N3"));
                }
            }

            // Bypass gesture with space bar
            if (_waitingForGesture != null)
            {
                if (Input.GetKeyDown(KeyCode.Space))
                {
                    Show_ExecuteStep();
                }
            }
        }

        foreach (var kvp in _knownClients)
        {
            if (kvp.Value.Status == ClientInfo.ConnectionStatus.Normal &&
                ((System.DateTime.Now - kvp.Value.LastSeenTime).TotalSeconds > 5))
            {
                // This client hasn't been seen for 5 seconds
                kvp.Value.Status = ClientInfo.ConnectionStatus.NotResponding;
            }

            if (kvp.Value.Status == ClientInfo.ConnectionStatus.NotResponding &&
                ((System.DateTime.Now - kvp.Value.RestartMsgTime).TotalSeconds > 2))
            {
                // Its been more than 2 seconds since the restarter was notified, send it again
                OSCManager.SendTo(new OSCMessage("/unity/client/restart"), kvp.Value.IPAddress, RemoteManagerPort);
                kvp.Value.RestartMsgTime = System.DateTime.Now;
            }
        }
    }
Exemple #3
0
    bool OnJoinShow(OSCMessage msg)
    {
        int clientId = -1;

        if (msg.Args != null && msg.Args.Length > 0)
        {
            clientId = (int)msg.Args[0];
        }

        if (clientId >= 0)
        {
            if (!_knownClients.ContainsKey(clientId))
            {
                _knownClients[clientId] = new ClientInfo(clientId, msg.From);
            }
            _knownClients[clientId].MarkLastSeen();
            _knownClients[clientId].IPAddress = msg.From;
        }

        // This client is just joining right now, send them everything from the last scene load up until the current step
        for (int i = _lastSceneMarker; i < _theShow.currentEventGroupIndex; i++)
        {
            EventGroup eg = _theShow.eventGroups[i];
            foreach (Event evt in eg.events)
            {
                switch (evt.action)
                {
                case "loadScene":
                    Debug.LogFormat("SHOW - Sending Loading scene: {0} to client: ({2}){1} ", evt.arg1, msg.From, clientId);
                    _lastSceneMarker = _theShow.currentEventGroupIndex - 1;
                    OSCManager.SendTo(new OSCMessage("/unity/server/show/loadScene", evt.arg1), msg.From);
                    break;

                case "showObject":
                    Debug.LogFormat("SHOW - Sending showObject: {0} to cleint: ({2}){1} ", evt.arg1, msg.From, clientId);
                    OSCManager.SendTo(new OSCMessage("/unity/server/show/showObject", evt.arg1), msg.From);
                    break;

                case "hideObject":
                    Debug.LogFormat("SHOW - Sending hideObject: {0} to cleint: ({2}){1} ", evt.arg1, msg.From, clientId);
                    OSCManager.SendTo(new OSCMessage("/unity/server/show/hideObject", evt.arg1), msg.From);
                    break;
                }
            }
        }
        return(true);
    }
Exemple #4
0
 public bool OnRestartClient(OSCMessage msg)
 {
     _restartRequested = true;
     OSCManager.SendTo(new OSCMessage("/unity/client/restarting"), msg.From, 9876);
     return(true);
 }