Exemple #1
0
 /// <summary>
 /// Called with `true` when the page is active on the monitor, called with
 /// `false` when the page is no longer active.
 /// </summary>
 /// <param name="enable">true when the page is actively displayed, false when the page
 /// is no longer displayed.</param>
 public override void SetPageActive(bool enable)
 {
     pageEnabled = enable;
     if (activeCamera != null)
     {
         if (enable)
         {
             activeCamera.UpdateFlightComputer(comp);
             activeCamera.renderCallback += ReadCamera;
         }
         else
         {
             activeCamera.renderCallback -= ReadCamera;
         }
     }
     variableRegistrar.EnableCallbacks(enable);
 }
Exemple #2
0
        /// <summary>
        /// Callback used to select active cameras
        /// </summary>
        private void CameraSelectCallback(double dontCare)
        {
            try
            {
                // This can return null at startup when the VC hasn't had a chance
                // to run.  Unfortunately, that means we have to call this callback
                // every time the camera should be enabled.
                MASCamera newCamera = comp.vc.FindCameraModule(cameraSelector.AsString());
                if (activeCamera != null)
                {
                    activeCamera.renderCallback -= ReadCamera;
                }
                activeCamera = newCamera;
                if (activeCamera != null)
                {
                    if (pageEnabled)
                    {
                        activeCamera.UpdateFlightComputer(comp);
                        activeCamera.renderCallback += ReadCamera;
                    }
                }
                else if (!coroutineActive)
                {
                    comp.StartCoroutine(CameraSelectCoroutine());
                }

                if (activeCamera == null)
                {
                    ApplyMissingCamera();
                }
            }
            catch
            {
                if (activeCamera != null)
                {
                    activeCamera.renderCallback -= ReadCamera;
                }

                activeCamera = null;
            }
        }