Exemple #1
0
    private void Start()
    {
        BuildPool();

        prepare = new ReactiveCommand();
        prepare.Delay(TimeSpan.FromSeconds(nextSpawnTime))
        .Subscribe(_ => PrepareNextObject())
        .AddTo(this);

        NextObject();
    }
Exemple #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);
        }