private void onAirXRPlayerDestroyed(int playerID, AirXRServerMessage message)
    {
        var unboundCameraRig = _cameraRigList.GetBoundCameraRig(playerID);

        if (unboundCameraRig != null)
        {
            if (unboundCameraRig.isStreaming && Delegate != null)
            {
                Delegate.AirXRCameraRigDeactivated(unboundCameraRig);
            }

            if (string.IsNullOrEmpty(unboundCameraRig.GetConfig().profileReportEndpoint) == false)
            {
                predictionEventHandler?.OnStopPrediction(unboundCameraRig);
            }

            unboundCameraRig.UnbindPlayer();
            _cameraRigList.ReleaseCameraRig(unboundCameraRig);

            if (Delegate != null)
            {
                Delegate.AirXRCameraRigHasBeenUnbound(unboundCameraRig);
            }
        }
    }
    private void onAirXRPlayerUserDataReceived(int playerID, AirXRServerMessage message)
    {
        var cameraRig = _cameraRigList.GetBoundCameraRig(playerID);

        if (cameraRig != null && Delegate != null)
        {
            Delegate.AirXRCameraRigUserDataReceived(cameraRig, message.Data_Decoded);
        }
    }
    private void onAirXRPlayerProfileCBOR(int playerID, AirXRServerMessage message)
    {
        var cameraRig = _cameraRigList.GetBoundCameraRig(playerID);

        if (cameraRig == null)
        {
            return;
        }

        predictionEventHandler?.OnProfileDataReceived(cameraRig, message.Data_Decoded);
    }
    private void onAirXRPlayerDeactivated(int playerID, AirXRServerMessage message)
    {
        var cameraRig = _cameraRigList.GetBoundCameraRig(playerID);

        if (cameraRig != null && Delegate != null)
        {
            Delegate.AirXRCameraRigDeactivated(cameraRig);
        }

        updateApplicationTargetFrameRate();
    }
Exemplo n.º 5
0
    private void onAirXRMediaStreamStopped(AirXRServerMessage message)
    {
        onStopRender();
        disableCameras();

        _mediaStreamJustStopped = true; // StopCoroutine(_CallPluginEndOfFrame) executes the routine one more in the next frame after the call.
                                        // so use a flag to completely stop the routine.

        GL.IssuePluginEvent(AXRServerPlugin.ResetStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID));

        inputStream.Stop();
    }
Exemplo n.º 6
0
    private void onAirXRMediaStreamInitialized(AirXRServerMessage message)
    {
        Assert.IsNull(mediaStream);

        initializeCamerasForMediaStream();
        AXRServerPlugin.SendCameraClipPlanes(playerID, cameras[0].nearClipPlane, cameras[0].farClipPlane);

        mediaStream = new AirXRServerMediaStream(playerID, _config, cameras.Length);
        GL.IssuePluginEvent(AXRServerPlugin.InitStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID));

        inputStream.Init();
    }
Exemplo n.º 7
0
    private void onAirXRMediaStreamCleanedUp(AirXRServerMessage message)
    {
        Assert.IsNotNull(mediaStream);

        inputStream.Cleanup();

        GL.IssuePluginEvent(AXRServerPlugin.CleanupStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID));

        mediaStream.Destroy();
        mediaStream = null;

        foreach (Camera cam in cameras)
        {
            cam.targetTexture = null;
        }
    }
    private void onAirXRPlayerCreated(int playerID, AirXRServerMessage message)
    {
        var selected = notifyCameraRigWillBeBound(playerID);

        if (selected != null)
        {
            _cameraRigList.RetainCameraRig(selected);
            selected.BindPlayer(playerID);

            AXRServerPlugin.AcceptPlayer(playerID);

            var config = selected.GetConfig();
            if (string.IsNullOrEmpty(config.profileReportEndpoint) == false &&
                string.IsNullOrEmpty(config.motionOutputEndpoint) == false)
            {
                predictionEventHandler?.OnStartPrediction(selected, config.profileReportEndpoint, config.motionOutputEndpoint);
            }
        }
        else
        {
            AXRServerPlugin.Disconnect(playerID);
        }
    }
 private void onAirXRProfilerReportReceived(int playerID, AirXRServerMessage message)
 {
     Debug.Log(string.Format("profiler report: fps {0:0.0} ({1}/{2:0.000}), avg latency: overall {3:0.000} = network {4:0.000} + decode {5:0.000}",
                             message.FrameCount / message.Duration, message.FrameCount, message.Duration,
                             message.AvgOverallLatency, message.AvgNetworkLatency, message.AvgDecodeLatency));
 }
 private void onAirXRProfilerFrameReceived(int playerID, AirXRServerMessage message)
 {
     //Debug.Log(string.Format("profiler frame: latency: overall {0:0.000} = network {1:0.000} + decode {2:0.000}",
     //                        message.OverallLatency, message.NetworkLatency, message.DecodeLatency));
 }
 private void onAirXRSessionDisconnected(int playerID, AirXRServerMessage message)
 {
     AirXRServer.NotifyClientDisconnected(playerID);
 }
 private void onAirXRPlayerShowCopyright(int playerID, AirXRServerMessage message)
 {
     Debug.Log("(C) 2016-present onAirXR. All right reserved.");
 }
Exemplo n.º 13
0
 private void onAirXRMediaStreamSetCameraProjection(AirXRServerMessage message)
 {
     updateCameraProjection(_config, message.CameraProjection);
 }
Exemplo n.º 14
0
 private void onAirXRMediaStreamEncodeVideoFrame(AirXRServerMessage message)
 {
     _encodeVideoFrameRequested = true;
 }
Exemplo n.º 15
0
 private void onAirXRMediaStreamStarted(AirXRServerMessage message)
 {
     startToRenderCamerasForMediaStream();
     inputStream.Start();
 }
Exemplo n.º 16
0
 protected override AXRMessage ParseMessageImpl(IntPtr source, string message)
 {
     return(AirXRServerMessage.Parse(source, message));
 }