private void DisconnectFromCamera()
        {
            if (videoObject != null)
            {
                videoObject.Disconnect();
                videoObject = null;
            }

            UpdateCameraState(false);
        }
        private void ConnectToCamera()
        {
            var chooser = new ASCOM.Utilities.Chooser();

            chooser.DeviceType = VIDEO_DEVICE_TYPE;
            string progId = chooser.Choose(VIDEO_DRIVER_NAME);

            if (!string.IsNullOrEmpty(progId))
            {
                useVariantPixels = Settings.Default.VariantPixels;
                videoObject      = new VideoWrapper(new Video(progId));

                try
                {
                    Cursor = Cursors.WaitCursor;
                    videoObject.Connected = true;

                    if (videoObject.Connected)
                    {
                        if (videoObject.SupporstFreeStyleGain)
                        {
                            videoObject.SetFreeRangeGainIntervals(Settings.Default.FreeRangeGainIntervals);
                        }

                        imageWidth       = videoObject.Width;
                        imageHeight      = videoObject.Height;
                        pictureBox.Image = new Bitmap(imageWidth, imageHeight);

                        ResizeVideoFrameTo(imageWidth, imageHeight);
                    }
                }
                finally
                {
                    Cursor = Cursors.Default;
                }


                pictureBox.Width  = videoObject.Width;
                pictureBox.Height = videoObject.Height;

                UpdateCameraState(true);
            }
        }
 internal void SetVideoObject(VideoWrapper wrapper)
 {
     videoObject = wrapper;
 }