diff -r 10acb6a11a73 -r c031f1132dde client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs --- a/client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs Mon Dec 14 17:02:03 2009 +0100 +++ b/client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs Wed Dec 16 17:14:38 2009 +0100 @@ -104,6 +104,7 @@ OnPropertyChanged("ViewModelMasterVideoViewer"); } } + //SelectedChapter public ProductionViewVM() { @@ -112,6 +113,9 @@ ViewModelProductionTimeLine = new ProductionTimeLineVM(); ViewModelProductionEditor = new ProductionEditorVM(); ViewModelMasterVideoViewer = new VideoViewerVM(true, false); + // ViewModelMasterVideoViewer.Source = Application.Current.Host.Source.Host.ToString() + "/video.mp4"; + + ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer; Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler(ClickAddSelectedRecord_Executed); Random rndNumbers = new Random(); for (int i = 0; i < 10; i++) @@ -125,13 +129,27 @@ EndTrim = new TimeSpan(0, 0, 0), }); } + ViewModelProductionTimeLine.SwitchVideo += new EventHandler(ViewModelProductionTimeLine_SwitchVideo); ViewModelMasterVideoViewer.Tick += new EventHandler(ViewModelMasterVideoViewer_Tick); } + void ViewModelProductionTimeLine_SwitchVideo(object sender, ProductionTimeLineVMEventArgs e) + { + ViewModelMasterVideoViewer.Source = (e.VideoSequence.Path); + ViewModelMasterVideoViewer.GoTo(e.BeginAt); + } + void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e) { - ViewModelProductionTimeLine.Position = e.Position.TotalMilliseconds; + double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds+e.Position.TotalMilliseconds; + if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos) + { + ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1]; + ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path; + ViewModelMasterVideoViewer.GoTo(TimeSpan.Zero); + } + ViewModelProductionTimeLine.Position = newPos; } void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) @@ -140,8 +158,15 @@ { if (!ViewModelProductionTimeLine.IsIndexing) { - if(SelectedVideoSequence!=null) - ViewModelProductionTimeLine.SelectedVideoSequences.Add(new VideoSequence(SelectedVideoSequence)); + if (SelectedVideoSequence != null) + { + ViewModelMasterVideoViewer.Source = SelectedVideoSequence.Path; + + VideoSequence newVideo = new VideoSequence(SelectedVideoSequence); + ViewModelProductionTimeLine.ActualVideoSequence = newVideo; + ViewModelProductionTimeLine.SelectedVideoSequences.Add(newVideo); + ViewModelProductionTimeLine.Position = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.Count - 1].TimerIn.TotalMilliseconds; + } } }