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<SLExtensions.Input.ExecutedEventArgs>(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<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo);
ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(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;
+ }
}
}