示例#1
0
 public void ProcessMessage(CamViewerController controller, string subject, params object[] body)
 {
     switch (subject)
     {
     case "OpenCameraByReference":
         ConnectToCamera(controller, body);
         break;
     }
 }
 public void DisconnectFromCamera(CamViewerController controller)
 {
     if (controller.Model.MJPEGStream != null)
     {
         controller.Model.MJPEGStream.NewFrame -=
             controller.Model.OnNewFrame;
         controller.Model.MJPEGStream.Stop();
         controller.Model.MJPEGStream = null;
     }
 }
示例#3
0
        public void Init(CamViewerController controller)
        {
            _controller = controller;

            foreach (var cameraCnn in _controller.Model.Settings.Connections)
            {
                AddCameraToUi(cameraCnn);
            }

            _controller.Model.NewFrame += OnFrameReceived;
        }
示例#4
0
 public override void Dispose()
 {
     if (_controller != null)
     {
         _mainView.TearDown();
         _mainView = null;
         _controller.Dispose();
         _controller = null;
         TabControl.TabPages.Remove(_tabPage);
         _tabPage = null;
         base.Dispose();
     }
 }
示例#5
0
        private void ConnectToCamera(CamViewerController controller, params object[] args)
        {
            var camRef    = (string)args[0];
            var targetCam = controller.Model.Settings.Connections.FirstOrDefault(cnn => cnn.Reference == camRef);

            if (targetCam == null)
            {
                controller.ShowError("Camera with reference {0} is missing.", camRef);
            }
            else
            {
                controller.ConnectToCamera(targetCam);
            }
        }
示例#6
0
        public CameraConnection AddCamera(CamViewerController controller)
        {
            var form = controller.CreateView <IAddCameraForm>();
            CameraConnection connection = null;

            if (form.Process())
            {
                connection = form.Connection;
                controller.Model.Settings.Connections.Add(connection);
                controller.SaveSettings();
            }

            return(connection);
        }
示例#7
0
        public CameraConnection EditCameraSettings(CamViewerController controller, CameraConnection cameraSettings)
        {
            var form = controller.CreateView <IAddCameraForm>();
            CameraConnection connection = null;

            form.Connection = cameraSettings;
            if (form.Process())
            {
                connection = form.Connection;
                controller.Model.Settings.Connections.Remove(cameraSettings);
                controller.Model.Settings.Connections.Add(connection);
                controller.SaveSettings();
            }

            return(connection);
        }
示例#8
0
        public void ConnectToCamera(CamViewerController controller, CameraConnection connection)
        {
            controller.DisconnectFromCamera();

            controller.Log.Info("Connecting to {0}", connection.Title);
            controller.Model.MJPEGStream = new MJPEGStream
            {
                Source   = connection.Uri,
                Login    = connection.User,
                Password = connection.Password,
            };
            controller.Model.MJPEGStream.NewFrame +=
                controller.Model.OnNewFrame;
            controller.Model.MJPEGStream.Start();

            controller.Tool.ApplyChange(ViewChanges.SelectCamera, connection);
        }
示例#9
0
        public override void Activate()
        {
            base.Activate();

            if (_controller == null)
            {
                _controller = new CamViewerController(Log, this, new CamViewerModel());
                _controller.LoadSettings();
                _tabPage  = new TabPage(ToolName);
                _mainView = new CamViewToolView {
                    Dock = DockStyle.Fill
                };
                _mainView.Init(_controller);
                _tabPage.Controls.Add(_mainView);
                TabControl.TabPages.Add(_tabPage);
                TabControl.SelectTab(_tabPage);
            }
            else // Select tab page.
            {
                TabControl.SelectTab(_tabPage);
            }
        }
示例#10
0
 public void SaveSettings(CamViewerController controller)
 {
     CamViewerSettingsHelper.Save(controller.Log, controller.Model.Settings);
 }
示例#11
0
        public void DeleteCamera(CamViewerController controller, CameraConnection connection)
        {
            controller.Model.Settings.Connections.Remove(connection);

            controller.SaveSettings();
        }
示例#12
0
 public void SetContext(CamViewerController context)
 {
     _controller = context;
 }
示例#13
0
 public void LoadSettings(CamViewerController controller)
 {
     controller.Model.Settings = CamViewerSettingsHelper.Load(controller.Log);
 }