Exemplo n.º 1
0
        private void CloseOSD()
        {
            IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>();
            VideoPlayerModel model           = workflowManager.GetModel(VideoPlayerModel.MODEL_ID) as VideoPlayerModel;

            if (model == null)
            {
                return;
            }

            if (model.IsOSDVisible)
            {
                model.CloseOSD();
            }
        }
Exemplo n.º 2
0
        public MainWindowViewModel()
        {
            _disposables           = new CompositeDisposable();
            _connectionDisposables = new CompositeDisposable();

            VideoPlayer         = new VideoPlayerModel().AddTo(_disposables);
            ConnectedDevice     = new DeviceModel();
            SelectDeviceCommand = new ReactiveCommand().AddTo(_disposables);
            SelectDeviceCommand.Delay(new TimeSpan(100)).ObserveOnUIDispatcher().SelectMany(_ => DialogHost.Show(new DeviceSelectDialog(), OnSelectDeviceDialogClosing).ToObservable())
            .Subscribe(async(result) => await ConnenctDevice(result as DiscoverResult)).AddTo(_disposables);

            _viewMode    = new BehaviorSubject <ViewMode>(ViewMode.None).AddTo(_disposables);
            IsModeRec    = new ReactiveProperty <bool>().AddTo(_disposables);
            IsModeLive   = new ReactiveProperty <bool>().AddTo(_disposables);
            IsModeInput  = new ReactiveProperty <bool>().AddTo(_disposables);
            IsModeOutput = new ReactiveProperty <bool>().AddTo(_disposables);
            _viewMode.DistinctUntilChanged().Subscribe(m => {
                IsModeRec.Value    = (m == ViewMode.Rec);
                IsModeLive.Value   = (m == ViewMode.Live);
                IsModeInput.Value  = (m == ViewMode.Input);
                IsModeOutput.Value = (m == ViewMode.Output);
            }).AddTo(_disposables);
            IsModeRec.Where(b => b).Subscribe(async(_) => await ToRecMode()).AddTo(_disposables);
            IsModeLive.Where(b => b).Subscribe(async(_) => await ToLiveMode()).AddTo(_disposables);
            IsModeInput.Where(b => b).Subscribe(async(_) => await ToInputMode()).AddTo(_disposables);
            IsModeOutput.Where(b => b).Subscribe(async(_) => await ToOutputMode()).AddTo(_disposables);
            _viewMode.OnNext(ViewMode.Output);

            SliderValue = new[] {
                new ReactiveProperty <double>(1.0).AddTo(_disposables),
                new ReactiveProperty <double>(0.0).AddTo(_disposables),
                new ReactiveProperty <double>(0.0).AddTo(_disposables),
                new ReactiveProperty <double>(0.0).AddTo(_disposables)
            };
            SliderMaximum  = new ReactiveProperty <double>(1.0).AddTo(_disposables);
            IsSliderActive = new[] {
                new ReactiveProperty <bool>(true).AddTo(_disposables),
                new ReactiveProperty <bool>(false).AddTo(_disposables),
                new ReactiveProperty <bool>(false).AddTo(_disposables),
                new ReactiveProperty <bool>(false).AddTo(_disposables)
            };
            SliderValue[0].Subscribe(async(value) => await OnSliderValueChanged(0, value)).AddTo(_disposables);
            SliderValue[1].Subscribe(async(value) => await OnSliderValueChanged(1, value)).AddTo(_disposables);
            SliderValue[2].Subscribe(async(value) => await OnSliderValueChanged(2, value)).AddTo(_disposables);
            SliderValue[3].Subscribe(async(value) => await OnSliderValueChanged(3, value)).AddTo(_disposables);
        }
 public VideoPlayerUserControl(AnimationVodObject animationVodObject)
 {
     this.DataContext = VideoPlayerModel = new VideoPlayerModel(animationVodObject);
     InitializeComponent();
 }
 public VideoPlayerUserControl() // 測試用
 {
     this.DataContext = VideoPlayerModel = new VideoPlayerModel(new AnimationVodObject());
     InitializeComponent();
 }