예제 #1
0
        public bool InitializeOperation(IVideoController videoContoller, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_VideoController = (VideoController)videoContoller;
            m_FramePlayer     = framePlayer;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucSpectroscopy(this, (VideoController)videoContoller, m_SpectroscopyController, framePlayer);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            m_OperationState   = SpectroscopyState.ChoosingStar;
            SelectedStar       = null;
            SelectedAnglePoint = Point.Empty;

            m_OriginalWidth      = framePlayer.Video.Width;
            m_OriginalHeight     = framePlayer.Video.Height;
            m_OriginalVideoFrame = new Rectangle(0, 0, m_OriginalWidth, m_OriginalHeight);

            return(true);
        }
예제 #2
0
 public ucSpectroscopy(VideoSpectroscopyOperation videoOperation, VideoController videoContoller, SpectroscopyController spectroscopyController, IFramePlayer framePlayer)
     : this()
 {
     m_VideoOperation = videoOperation;
     m_FramePlayer = framePlayer;
     m_VideoContoller = videoContoller;
     m_SpectroscopyController = spectroscopyController;
 }
예제 #3
0
 public ucSpectroscopy(VideoSpectroscopyOperation videoOperation, VideoController videoContoller, SpectroscopyController spectroscopyController, IFramePlayer framePlayer)
     : this()
 {
     m_VideoOperation         = videoOperation;
     m_FramePlayer            = framePlayer;
     m_VideoContoller         = videoContoller;
     m_SpectroscopyController = spectroscopyController;
 }
예제 #4
0
        public frmRunMultiFrameSpectroscopy(IFramePlayer framePlayer, VideoSpectroscopyOperation videoOperation, AstroImage astroImage)
            : this()
        {
            m_VideoOperation = videoOperation;
            m_AstroImage     = astroImage;

            nudNumberMeasurements.Maximum = framePlayer.Video.LastFrame - framePlayer.CurrentFrameIndex;
            nudNumberMeasurements.SetNUDValue(Math.Min(200, nudNumberMeasurements.Maximum));
            nudAreaWing.SetNUDValue(Math.Min(videoOperation.MeasurementAreaWing, nudAreaWing.Maximum));
            nudBackgroundWing.SetNUDValue(Math.Min(videoOperation.BackgroundAreaWing, nudBackgroundWing.Maximum));
            cbxBackgroundMethod.SelectedIndex = 1; /* Median */
            cbxCombineMethod.SelectedIndex    = 1; /* Median */
            nudExposureSec.SetNUDValue(astroImage.Pixelmap.FrameState.ExposureInMilliseconds / 1000.0f);

            m_Initialised = true;
        }
        public frmRunMultiFrameSpectroscopy(IFramePlayer framePlayer, VideoSpectroscopyOperation videoOperation, AstroImage astroImage)
            : this()
        {
            m_VideoOperation = videoOperation;
            m_AstroImage = astroImage;

            nudNumberMeasurements.Maximum = framePlayer.Video.LastFrame - framePlayer.CurrentFrameIndex;
            nudNumberMeasurements.SetNUDValue(Math.Min(200, nudNumberMeasurements.Maximum));
            nudAreaWing.SetNUDValue(Math.Min(videoOperation.MeasurementAreaWing, nudAreaWing.Maximum));
            nudBackgroundWing.SetNUDValue(Math.Min(videoOperation.BackgroundAreaWing, nudBackgroundWing.Maximum));
            cbxBackgroundMethod.SelectedIndex = 1; /* Median */
            cbxCombineMethod.SelectedIndex = 1; /* Median */
            nudExposureSec.SetNUDValue(astroImage.Pixelmap.FrameState.ExposureInMilliseconds / 1000.0f);

            m_Initialised = true;
        }
예제 #6
0
        public frmSelectInitialSettings(int frameWidth, int frameHeight, VideoController videoController, IFramePlayer framePlayer)
        {
            InitializeComponent();

            m_VideoController = videoController;
            ucCameraSettings1.FrameWidth = frameWidth;
            ucCameraSettings1.FrameHeight = frameHeight;
            ucCameraSettings1.OnUpdateEnabledDisabledState += ucCameraSettings1_OnUpdateEnabledDisabledState;

            ucStretching.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);
            ucImageDefectSettings1.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);

            FrameAdjustmentsPreview.Instance.ParentForm = this;
            FrameAdjustmentsPreview.Instance.FramePlayer = framePlayer;
            FrameAdjustmentsPreview.Instance.Reset(m_VideoController, framePlayer.CurrentFrameIndex);
        }
예제 #7
0
        public frmSelectReductionType(VideoController videoContoller, IFramePlayer framePlayer)
        {
            InitializeComponent();

            m_VideoContoller = videoContoller;
            rbAsteroidal.Checked = true;

            ucStretching.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);

            SetComboboxIndexFromPhotometryReductionMethod(TangraConfig.Settings.LastUsed.AsteroidalReductionType);
            cbxDigitalFilter.SelectedIndex = 0;
            SetComboboxIndexFromBackgroundMethod(TangraConfig.Settings.LastUsed.AsteroidalBackgroundReductionMethod);

            m_MoreEnabled = TangraConfig.Settings.LastUsed.AdvancedLightCurveSettings;
            SetMoreLessOptions();

            FrameAdjustmentsPreview.Instance.ParentForm = this;
            FrameAdjustmentsPreview.Instance.FramePlayer = framePlayer;
            FrameAdjustmentsPreview.Instance.Reset(m_VideoContoller, framePlayer.CurrentFrameIndex);

            m_DefaultReductionSettingsModified = false;
        }
예제 #8
0
        public frmSelectReductionType(VideoController videoContoller, IFramePlayer framePlayer)
        {
            InitializeComponent();

            m_VideoContoller     = videoContoller;
            rbAsteroidal.Checked = true;

            ucStretching.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);

            SetComboboxIndexFromPhotometryReductionMethod(TangraConfig.Settings.LastUsed.AsteroidalReductionType);
            cbxDigitalFilter.SelectedIndex = 0;
            SetComboboxIndexFromBackgroundMethod(TangraConfig.Settings.LastUsed.AsteroidalBackgroundReductionMethod);

            m_MoreEnabled = TangraConfig.Settings.LastUsed.AdvancedLightCurveSettings;
            SetMoreLessOptions();

            FrameAdjustmentsPreview.Instance.ParentForm  = this;
            FrameAdjustmentsPreview.Instance.FramePlayer = framePlayer;
            FrameAdjustmentsPreview.Instance.Reset(m_VideoContoller, framePlayer.CurrentFrameIndex);

            m_DefaultReductionSettingsModified = false;
        }
예제 #9
0
        public bool InitializeOperation(IVideoController videoController, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            TangraContext.Current.CanLoadFlatFrame = false;
            TangraContext.Current.CanLoadDarkFrame = false;
            TangraContext.Current.CanLoadBiasFrame = false;

            m_VideoController = videoController;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucMakeDarkFlatField(this);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            return(true);
        }
예제 #10
0
        public bool InitializeOperation(IVideoController videoController, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_Status          = ConvertVideoToFitsState.Configuring;
            m_VideoController = (VideoController)videoController;

            // We don't allow loading of calibration frames for now. Doing so with complicate the export
            TangraContext.Current.CanLoadFlatFrame = false;
            TangraContext.Current.CanLoadDarkFrame = false;
            TangraContext.Current.CanLoadBiasFrame = false;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucConvertVideoToFits(this, (VideoController)videoController);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            if (topForm.Height < 736)
            {
                // Make sure all controls of the panel are visible
                topForm.Height = 736;
            }

            var videoFileFormat = m_VideoController.GetVideoFileFormat();

            if (videoFileFormat == VideoFileFormat.AAV &&
                m_VideoController.CurrentFrameIndex == m_VideoController.VideoFirstFrame)
            {
                m_VideoController.StepForward();
            }

            return(true);
        }
예제 #11
0
        public bool InitializeOperation(IVideoController videoController, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            TangraContext.Current.CanLoadFlatFrame = false;
            TangraContext.Current.CanLoadDarkFrame = false;
            TangraContext.Current.CanLoadBiasFrame = false;

            m_VideoController = videoController;

            if (m_ControlPanel == null)
            {
                lock(m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucMakeDarkFlatField(this);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            return true;
        }
예제 #12
0
        public bool InitializeOperation(IVideoController videoContoller, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_VideoController = (VideoController)videoContoller;
            m_FramePlayer = framePlayer;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucSpectroscopy(this, (VideoController)videoContoller, m_SpectroscopyController, framePlayer);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            m_OperationState = SpectroscopyState.ChoosingStar;
            SelectedStar = null;
            SelectedAnglePoint = Point.Empty;

            m_OriginalWidth = framePlayer.Video.Width;
            m_OriginalHeight = framePlayer.Video.Height;
            m_OriginalVideoFrame = new Rectangle(0, 0, m_OriginalWidth, m_OriginalHeight);

            return true;
        }
예제 #13
0
        public bool InitializeOperation(IVideoController videoContoller, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_NumberFramesWithBadTracking = 0;

            m_VideoController = (VideoController)videoContoller;
            m_ControlPanelHolder = controlPanel;

            var configForm = new frmSelectReductionType(m_VideoController, framePlayer);
            if (configForm.ShowDialog(topForm) == DialogResult.OK)
            {
                EnsureControlPanel(controlPanel);

                BeginConfiguration();

                TangraContext.Current.CanChangeTool = true;

                if (m_VideoController.IsPlainAviVideo &&
                    !TangraConfig.Settings.Generic.OcrInitialSetupCompleted)
                {
                    var frm = new frmChooseFirstTimeOcrSettings();
                    frm.ShowDialog(topForm);
                }

                return true;
            }

            TangraContext.Current.CanLoadBiasFrame = true;
            TangraContext.Current.CanLoadDarkFrame = true;
            TangraContext.Current.CanLoadFlatFrame = true;

            return false;
        }
예제 #14
0
 public AutomationVideoPlayer()
 {
     m_FramePlayer = new FramePlayer();
 }
예제 #15
0
        public bool InitializeOperation(IVideoController videoController, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_Status = ConvertVideoToFitsState.Configuring;
            m_VideoController = (VideoController)videoController;

            // We don't allow loading of calibration frames for now. Doing so with complicate the export
            TangraContext.Current.CanLoadFlatFrame = false;
            TangraContext.Current.CanLoadDarkFrame = false;
            TangraContext.Current.CanLoadBiasFrame = false;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucConvertVideoToFits(this, (VideoController)videoController);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            return true;
        }
예제 #16
0
        public bool InitializeOperation(IVideoController videoController, Panel controlPanel, IFramePlayer framePlayer, Form topForm)
        {
            m_Status          = ConvertVideoToFitsState.Configuring;
            m_VideoController = (VideoController)videoController;

            // We don't allow loading of calibration frames for now. Doing so with complicate the export
            TangraContext.Current.CanLoadFlatFrame = false;
            TangraContext.Current.CanLoadDarkFrame = false;
            TangraContext.Current.CanLoadBiasFrame = false;

            if (m_ControlPanel == null)
            {
                lock (m_SyncRoot)
                {
                    if (m_ControlPanel == null)
                    {
                        m_ControlPanel = new ucConvertVideoToFits(this, (VideoController)videoController);
                    }
                }
            }

            controlPanel.Controls.Clear();
            controlPanel.Controls.Add(m_ControlPanel);
            m_ControlPanel.Dock = DockStyle.Fill;

            return(true);
        }
예제 #17
0
        public frmSelectInitialSettings(int frameWidth, int frameHeight, VideoController videoController, IFramePlayer framePlayer)
        {
            InitializeComponent();

            m_VideoController             = videoController;
            ucCameraSettings1.FrameWidth  = frameWidth;
            ucCameraSettings1.FrameHeight = frameHeight;
            ucCameraSettings1.OnUpdateEnabledDisabledState += ucCameraSettings1_OnUpdateEnabledDisabledState;

            ucStretching.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);
            ucImageDefectSettings1.Initialize(framePlayer.Video, framePlayer.CurrentFrameIndex);

            FrameAdjustmentsPreview.Instance.ParentForm  = this;
            FrameAdjustmentsPreview.Instance.FramePlayer = framePlayer;
            FrameAdjustmentsPreview.Instance.Reset(m_VideoController, framePlayer.CurrentFrameIndex);
        }
예제 #18
0
 internal void SetFramePlayer(IFramePlayer framePlayer)
 {
     m_FramePlayer = framePlayer;
 }
예제 #19
0
 internal void SetFramePlayer(IFramePlayer framePlayer)
 {
     m_FramePlayer = framePlayer;
 }