public MainWindowViewModel() { CurrentMap = Parser.CreateBeatmap(); PlayRate = 100; TimingMarks = new ObservableCollection <TimingMark> { new TimingMark() }; CurrentTiming = TimingMarks[0]; Diffs = new ObservableCollection <DiffVersion>(); OffsetErrorOccurred = false; _playTimer.Interval = TimeSpan.FromMilliseconds((double)1000 / 144); _playTimer.Tick += (sender, args) => { var curTime = _stopWatch.Elapsed.TotalMilliseconds; CurrentPosition += (curTime - _oldTime) * PlayRate / 100; _oldTime = curTime; if (CurrentPosition > SongLength) { CurrentPosition = SongLength; CurrentPosition = SongLength; _playTimer.Stop(); } EventBus.Instance.Publish(new CurPositionEvent { CurPosition = CurrentPosition }); }; ErrorTimer.Interval = TimeSpan.FromSeconds(2); ErrorTimer.Tick += (sender, args) => { OffsetErrorOccurred = false; ErrorTimer.Stop(); }; EventBus.Instance.RegisterHandler(this); _dialogManager = new CustomDialogManager(new MetroDialogSettings { AnimateShow = false, AnimateHide = false }); }
/// <summary> /// Constructor /// </summary> /// <param name="dialogManager">Dialog Manager</param> public MainWindowViewModel(ICustomDialogManager dialogManager) { _dialogManager = dialogManager; }