client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs
changeset 24 c031f1132dde
parent 23 10acb6a11a73
child 25 a9c815025a1b
equal deleted inserted replaced
23:10acb6a11a73 24:c031f1132dde
   102             {
   102             {
   103                 _masterVideoViewerVM = value;
   103                 _masterVideoViewerVM = value;
   104                 OnPropertyChanged("ViewModelMasterVideoViewer");
   104                 OnPropertyChanged("ViewModelMasterVideoViewer");
   105             }
   105             }
   106         }
   106         }
       
   107         
   107         //SelectedChapter
   108         //SelectedChapter
   108         public ProductionViewVM()
   109         public ProductionViewVM()
   109         {
   110         {
   110             RecordedVideoSequences = new ObservableCollection<VideoSequence>();
   111             RecordedVideoSequences = new ObservableCollection<VideoSequence>();
   111             ViewModelHeaderProduction = new HeaderProductionVM();
   112             ViewModelHeaderProduction = new HeaderProductionVM();
   112             ViewModelProductionTimeLine = new ProductionTimeLineVM();
   113             ViewModelProductionTimeLine = new ProductionTimeLineVM();
   113             ViewModelProductionEditor = new ProductionEditorVM();
   114             ViewModelProductionEditor = new ProductionEditorVM();
   114             ViewModelMasterVideoViewer = new VideoViewerVM(true, false);
   115             ViewModelMasterVideoViewer = new VideoViewerVM(true, false);
       
   116            // ViewModelMasterVideoViewer.Source = Application.Current.Host.Source.Host.ToString() + "/video.mp4";
       
   117             
       
   118             ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer;
   115             Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed);
   119             Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed);
   116             Random rndNumbers = new Random();
   120             Random rndNumbers = new Random();
   117             for (int i = 0; i < 10; i++)
   121             for (int i = 0; i < 10; i++)
   118             {
   122             {
   119          
   123          
   123                     RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0),
   127                     RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0),
   124                     BeginTrim = new TimeSpan(0, 0, 0),
   128                     BeginTrim = new TimeSpan(0, 0, 0),
   125                     EndTrim = new TimeSpan(0, 0, 0),
   129                     EndTrim = new TimeSpan(0, 0, 0),
   126                 });
   130                 });
   127             }
   131             }
       
   132             ViewModelProductionTimeLine.SwitchVideo += new EventHandler<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo);   
   128             ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick);
   133             ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick);
   129            
   134            
   130         }
   135         }
   131 
   136 
       
   137         void ViewModelProductionTimeLine_SwitchVideo(object sender, ProductionTimeLineVMEventArgs e)
       
   138         {
       
   139             ViewModelMasterVideoViewer.Source = (e.VideoSequence.Path);
       
   140             ViewModelMasterVideoViewer.GoTo(e.BeginAt);
       
   141         }
       
   142 
   132         void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e)
   143         void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e)
   133         {
   144         {
   134             ViewModelProductionTimeLine.Position = e.Position.TotalMilliseconds;
   145             double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds+e.Position.TotalMilliseconds;
       
   146             if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos)
       
   147             {
       
   148                 ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1];
       
   149                 ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path;
       
   150                 ViewModelMasterVideoViewer.GoTo(TimeSpan.Zero);
       
   151             }
       
   152             ViewModelProductionTimeLine.Position = newPos;
   135         }
   153         }
   136 
   154 
   137         void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
   155         void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
   138         {
   156         {
   139             if (ViewModelProductionTimeLine.SelectedChapter != -1)
   157             if (ViewModelProductionTimeLine.SelectedChapter != -1)
   140             {
   158             {
   141                 if (!ViewModelProductionTimeLine.IsIndexing)
   159                 if (!ViewModelProductionTimeLine.IsIndexing)
   142                 {
   160                 {
   143                     if(SelectedVideoSequence!=null)
   161                     if (SelectedVideoSequence != null)
   144                     ViewModelProductionTimeLine.SelectedVideoSequences.Add(new VideoSequence(SelectedVideoSequence));
   162                     {
       
   163                         ViewModelMasterVideoViewer.Source = SelectedVideoSequence.Path;
       
   164 
       
   165                         VideoSequence newVideo = new VideoSequence(SelectedVideoSequence);
       
   166                         ViewModelProductionTimeLine.ActualVideoSequence = newVideo;
       
   167                             ViewModelProductionTimeLine.SelectedVideoSequences.Add(newVideo);
       
   168                             ViewModelProductionTimeLine.Position = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.Count - 1].TimerIn.TotalMilliseconds;
       
   169                     }
   145                 }
   170                 }
   146                
   171                
   147             }
   172             }
   148          
   173          
   149            
   174