public void Init(EngineViewArgs args)
        {
            eventAggregator = container.Resolve <IEventAggregator>();

            btnSwitch = new LinkButtonSwitch(eventAggregator);
            btnSwitch.ClearSelection = () => {
                buttonsList.UnselectAll();
            };
            disposables.Add(Observable.FromEventPattern(buttonsList, "SelectionChanged")
                            .Subscribe(e => {
                btnSwitch.SelectedButton = (ButtonBase)buttonsList.SelectedItem;
            }));
            disposables.Add(btnSwitch);

            //dataProcInfo = new VideoInfo();

            //GetSnapshot(args);

            if (args.selectedEngineControl == null)
            {
                log.WriteInfo(String.Format("no control is associated with engine '{0}'", args.engine.token));
                CreateEmergencyButtons(args);
            }
            else
            {
                //dataProcInfo.ChanToken = args.channelDescr.videoSource.token;

                LoadButtons(args);
                //disposables.Add(Observable.FromEventPattern(vsSnapshot, "MouseDown").Subscribe(ev => { GetSnapshot(args); }));
            }
            buttonsList.ItemsSource = Buttons;
        }
        void LoadButtons(EngineViewArgs args)
        {
            var curAccount = AccountManager.Instance.CurrentAccount;

            Buttons.Add(new NVALiveVideoButton(container.Resolve <EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));           //, dataProcInfo));

            //Buttons.Add(new NVAControlsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));//, dataProcInfo));

            Buttons.Add(new NVAAnalyticsButton(container.Resolve <EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
            //Buttons.Add(new NVAInputsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
            Buttons.Add(new NVAMetadataButton(container.Resolve <EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
            Buttons.Add(new NVASettingsButton(container.Resolve <EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
        }
 static IEnumerable <FSharpAsync <Unit> > LoadImpl(EngineViewArgs args)
 {
     AnalyticsEngineControl[] controls;
     yield return(args.nvtSession.GetAnalyticsEngineControls().Select(ctrls => {
         args.controls = ctrls;
         controls = ctrls;
         if (controls == null)
         {
             args.selectedEngineControl = null;
             args.selectedEngineControlToken = null;
             return (Unit)null;
         }
         if (args.selectedEngineControlToken == null)
         {
             //load default (first in list)
             var contr = controls.FirstOrDefault(f => {
                 if (f.engineToken == null)
                 {
                     return false;                            //to show profile even if it corrupted
                 }
                 return f.engineToken == args.engine.token;
             });
             if (contr == null)
             {
                 args.selectedEngineControl = null;
                 args.selectedEngineControlToken = null;
                 return (Unit)null;
             }
             args.selectedEngineControl = contr;
             args.selectedEngineControlToken = args.selectedEngineControl.token;
         }
         else
         {
             var contr = ctrls.FirstOrDefault(f => {
                 if (f.engineToken == null)
                 {
                     return false;
                 }
                 return f.engineToken == args.engine.token && f.token == args.selectedEngineControlToken;
             });
             if (contr == null)
             {
                 args.selectedEngineControl = null;
                 args.selectedEngineControlToken = null;
                 return (Unit)null;
             }
             args.selectedEngineControl = contr;
         }
         return (Unit)null;
     }));
 }
		public static FSharpAsync<EngineViewArgs> Load(AnalyticsEngine engine,
														Capabilities capabilities,
														INvtSession nvtSession,
														OdmSession odmsession,
														string ctrl = null) {
			EngineViewArgs args = new EngineViewArgs();
			args.nvtSession = nvtSession;
			args.odmSession = odmsession;
			args.capabilities = capabilities;
			args.engine = engine;
			args.selectedEngineControlToken = ctrl;

			return Apm.Iterate(LoadImpl(args)).Select(f => { return args; });
		}
        public static FSharpAsync <EngineViewArgs> Load(AnalyticsEngine engine,
                                                        Capabilities capabilities,
                                                        INvtSession nvtSession,
                                                        OdmSession odmsession,
                                                        string ctrl = null)
        {
            EngineViewArgs args = new EngineViewArgs();

            args.nvtSession   = nvtSession;
            args.odmSession   = odmsession;
            args.capabilities = capabilities;
            args.engine       = engine;
            args.selectedEngineControlToken = ctrl;

            return(Apm.Iterate(LoadImpl(args)).Select(f => { return args; }));
        }
		static IEnumerable<FSharpAsync<Unit>> LoadImpl(EngineViewArgs args) {
			AnalyticsEngineControl[] controls;
			yield return args.nvtSession.GetAnalyticsEngineControls().Select(ctrls => {
				args.controls = ctrls;
				controls = ctrls;
				if (controls == null) {
					args.selectedEngineControl = null;
					args.selectedEngineControlToken = null;
					return (Unit)null;
				}
				if (args.selectedEngineControlToken == null) {
					//load default (first in list)
					var contr = controls.FirstOrDefault(f => {
						if (f.engineToken == null)
							return false;//to show profile even if it corrupted
						return f.engineToken == args.engine.token;
					});
					if (contr == null) {
						args.selectedEngineControl = null;
						args.selectedEngineControlToken = null;
						return (Unit)null;
					}
					args.selectedEngineControl = contr;
					args.selectedEngineControlToken = args.selectedEngineControl.token;
				} else {
					var contr = ctrls.FirstOrDefault(f => {
						if (f.engineToken == null)
							return false;
						return f.engineToken == args.engine.token && f.token == args.selectedEngineControlToken;
					});
					if (contr == null) {
						args.selectedEngineControl = null;
						args.selectedEngineControlToken = null;
						return (Unit)null;
					}
					args.selectedEngineControl = contr;
				}
				return (Unit)null;
			});
		}
		void LoadButtons(EngineViewArgs args) {
			var curAccount = AccountManager.Instance.CurrentAccount;

			Buttons.Add(new NVALiveVideoButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));//, dataProcInfo));

			//Buttons.Add(new NVAControlsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));//, dataProcInfo));

			Buttons.Add(new NVAAnalyticsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
			//Buttons.Add(new NVAInputsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
			Buttons.Add(new NVAMetadataButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));
			Buttons.Add(new NVASettingsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, args.selectedEngineControl, curAccount));

		}
		void CreateEmergencyButtons(EngineViewArgs args) {
			var curAccount = AccountManager.Instance.CurrentAccount;
			Buttons.Add(new NVAControlsButton(container.Resolve<EventAggregator>(), args.nvtSession, args.engine, null, curAccount));//, dataProcInfo));
		}
		public void Init(EngineViewArgs args) {
			eventAggregator = container.Resolve<IEventAggregator>();

			btnSwitch = new LinkButtonSwitch(eventAggregator);
			btnSwitch.ClearSelection = () => {
				buttonsList.UnselectAll();
			};
			disposables.Add(Observable.FromEventPattern(buttonsList, "SelectionChanged")
				.Subscribe(e => {
					btnSwitch.SelectedButton = (ButtonBase)buttonsList.SelectedItem;
				}));
			disposables.Add(btnSwitch);

			//dataProcInfo = new VideoInfo();

			//GetSnapshot(args);

			if (args.selectedEngineControl == null) {
				log.WriteInfo(String.Format("no control is associated with engine '{0}'", args.engine.token));
				CreateEmergencyButtons(args);
			} else {
				//dataProcInfo.ChanToken = args.channelDescr.videoSource.token;

				LoadButtons(args);
				//disposables.Add(Observable.FromEventPattern(vsSnapshot, "MouseDown").Subscribe(ev => { GetSnapshot(args); }));
			}
			buttonsList.ItemsSource = Buttons;
		}
Ejemplo n.º 10
0
        void CreateEmergencyButtons(EngineViewArgs args)
        {
            var curAccount = AccountManager.Instance.CurrentAccount;

            Buttons.Add(new NVAControlsButton(container.Resolve <EventAggregator>(), args.nvtSession, args.engine, null, curAccount));           //, dataProcInfo));
        }