client/src/Iri.Modernisation.Controls/ViewModel/ProductionView/ProductionViewVM.cs
changeset 36 b6df6fce6e5d
parent 35 43bb1b8ed555
child 38 bd33267300aa
equal deleted inserted replaced
35:43bb1b8ed555 36:b6df6fce6e5d
   130 
   130 
   131 
   131 
   132        private void InitializeCommands()
   132        private void InitializeCommands()
   133        {
   133        {
   134             Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed);
   134             Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed);
   135             ViewModelProductionTimeLine.SwitchVideo += new EventHandler<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo);
   135          
   136             ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick);
   136             ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick);
   137             ViewModelHeaderProduction.Change += new EventHandler<HeaderProductionVMArgs>(ViewModelHeaderProduction_Change);
   137             ViewModelHeaderProduction.Change += new EventHandler<HeaderProductionVMArgs>(ViewModelHeaderProduction_Change);
   138             Commands.HeaderProduction.PublishClick.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(PublishClick_Executed);    
   138             Commands.HeaderProduction.PublishClick.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(PublishClick_Executed);    
   139            
   139            
   140        }
   140        }
   145             ViewModelProductionTimeLine = new ProductionTimeLineVM();
   145             ViewModelProductionTimeLine = new ProductionTimeLineVM();
   146             ViewModelProductionEditor = new ProductionEditorVM();
   146             ViewModelProductionEditor = new ProductionEditorVM();
   147             ViewModelMasterVideoViewer = new VideoViewerVM(true, false);
   147             ViewModelMasterVideoViewer = new VideoViewerVM(true, false);
   148       
   148       
   149             ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer;
   149             ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer;
   150             Random rndNumbers = new Random();
   150 
   151             _recordedVideoSequences.Add(new VideoSequence()
       
   152             {
       
   153                 Path = Application.Current.Host.Source.Host.ToString() + "/test.wmv",
       
   154                 RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0),
       
   155                 BeginTrim = new TimeSpan(0, 0, 0),
       
   156                 EndTrim = new TimeSpan(0, 0, 0),
       
   157             });
       
   158            
       
   159          
       
   160                 _recordedVideoSequences.Add(new VideoSequence()
       
   161                 {
       
   162                     Path = "/video.mp4",
       
   163                     RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0),
       
   164                     BeginTrim = new TimeSpan(0, 0, 0),
       
   165                     EndTrim = new TimeSpan(0, 0, 0),
       
   166                 });
       
   167             
   151             
       
   152       
   168            
   153            
   169             InitializeCommands();
   154             InitializeCommands();
   170             OnPropertyChanged(String.Empty);
   155             OnPropertyChanged(String.Empty);
   171            
   156            
   172         }
   157         }
   232                 ViewModelProductionTimeLine.IsIndexing = false;
   217                 ViewModelProductionTimeLine.IsIndexing = false;
   233             }       
   218             }       
   234             ViewModelProductionTimeLine.SelectedChapter = e.ChapterHeader.ChapterDescription.Id ;
   219             ViewModelProductionTimeLine.SelectedChapter = e.ChapterHeader.ChapterDescription.Id ;
   235         }
   220         }
   236 
   221 
   237         private void ViewModelProductionTimeLine_SwitchVideo(object sender, ProductionTimeLineVMEventArgs e)
   222        
   238         {
       
   239             ViewModelMasterVideoViewer.Source = (e.VideoSequence.Path);
       
   240             ViewModelMasterVideoViewer.GoTo(e.BeginAt);
       
   241         }
       
   242 
   223 
   243         private void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e)
   224         private void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e)
   244         {
   225         {
   245             double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds+e.Position.TotalMilliseconds;
   226             double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds + e.Position.TotalMilliseconds;
   246             if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos)
   227             if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos)
   247             {
   228             {
   248                 ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1];
   229                 if (ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1 < ViewModelProductionTimeLine.TimeLine.Count)
   249                 ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path;
   230                 {
   250                 ViewModelMasterVideoViewer.GoTo(ViewModelProductionTimeLine.ActualVideoSequence.BeginTrim);
   231                     ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1];
       
   232                     ViewModelMasterVideoViewer.BeginIn = ViewModelProductionTimeLine.ActualVideoSequence.BeginTrim;
       
   233                     ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path;
       
   234                     ViewModelMasterVideoViewer.GoTo(ViewModelProductionTimeLine.ActualVideoSequence.BeginTrim);
       
   235                 }
       
   236                 else
       
   237                 {
       
   238                     ViewModelMasterVideoViewer.Pause();
       
   239                 }
   251             }
   240             }
   252             ViewModelProductionTimeLine.Position = newPos;
   241             ViewModelProductionTimeLine.Position = newPos;
   253         }
   242         }
   254 
   243 
   255         private void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)
   244         private void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e)