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) |