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 |