client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs
changeset 24 c031f1132dde
parent 23 10acb6a11a73
child 25 a9c815025a1b
--- 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;
+                    }
                 }
                
             }