14 using Iri.Modernisation.Data.Models; |
14 using Iri.Modernisation.Data.Models; |
15 using System.Collections.ObjectModel; |
15 using System.Collections.ObjectModel; |
16 using System.Collections.Generic; |
16 using System.Collections.Generic; |
17 namespace Iri.Modernisation.Controls.ViewModel |
17 namespace Iri.Modernisation.Controls.ViewModel |
18 { |
18 { |
|
19 /// <summary> |
|
20 /// ViewModel de ProductionView |
|
21 /// </summary> |
19 public class ProductionViewVM : BaseMVVM.ViewModel.ViewModel |
22 public class ProductionViewVM : BaseMVVM.ViewModel.ViewModel |
20 { |
23 { |
21 |
24 |
22 private VideoSequence _selectedVideoSequence; |
25 private VideoSequence _selectedVideoSequence; |
|
26 /// <summary> |
|
27 /// VideoSequence Sélectionnée dans la liste |
|
28 /// </summary> |
23 public VideoSequence SelectedVideoSequence |
29 public VideoSequence SelectedVideoSequence |
24 { |
30 { |
25 get |
31 get |
26 { |
32 { |
27 return _selectedVideoSequence; |
33 return _selectedVideoSequence; |
61 { |
73 { |
62 _headerProductionVM = value; |
74 _headerProductionVM = value; |
63 OnPropertyChanged("ViewModelHeaderProduction"); |
75 OnPropertyChanged("ViewModelHeaderProduction"); |
64 } |
76 } |
65 } |
77 } |
|
78 |
66 private ProductionTimeLineVM _productionTimeLineVM; |
79 private ProductionTimeLineVM _productionTimeLineVM; |
|
80 /// <summary> |
|
81 /// ViewModel de ProductionTimeLine |
|
82 /// </summary> |
67 public ProductionTimeLineVM ViewModelProductionTimeLine |
83 public ProductionTimeLineVM ViewModelProductionTimeLine |
68 { |
84 { |
69 get |
85 get |
70 { |
86 { |
71 return _productionTimeLineVM; |
87 return _productionTimeLineVM; |
103 _masterVideoViewerVM = value; |
125 _masterVideoViewerVM = value; |
104 OnPropertyChanged("ViewModelMasterVideoViewer"); |
126 OnPropertyChanged("ViewModelMasterVideoViewer"); |
105 } |
127 } |
106 } |
128 } |
107 |
129 |
108 //SelectedChapter |
130 private void InitializeCommands() |
|
131 { |
|
132 Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed); |
|
133 ViewModelProductionTimeLine.SwitchVideo += new EventHandler<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo); |
|
134 ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick); |
|
135 |
|
136 } |
109 public ProductionViewVM() |
137 public ProductionViewVM() |
110 { |
138 { |
111 RecordedVideoSequences = new ObservableCollection<VideoSequence>(); |
139 RecordedVideoSequences = new ObservableCollection<VideoSequence>(); |
112 ViewModelHeaderProduction = new HeaderProductionVM(); |
140 ViewModelHeaderProduction = new HeaderProductionVM(); |
113 ViewModelProductionTimeLine = new ProductionTimeLineVM(); |
141 ViewModelProductionTimeLine = new ProductionTimeLineVM(); |
114 ViewModelProductionEditor = new ProductionEditorVM(); |
142 ViewModelProductionEditor = new ProductionEditorVM(); |
115 ViewModelMasterVideoViewer = new VideoViewerVM(true, false); |
143 ViewModelMasterVideoViewer = new VideoViewerVM(true, false); |
116 // ViewModelMasterVideoViewer.Source = Application.Current.Host.Source.Host.ToString() + "/video.mp4"; |
|
117 |
144 |
118 ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer; |
145 ViewModelProductionTimeLine.ViewModelVideoViewer = ViewModelMasterVideoViewer; |
119 Commands.ProductionView.ClickAddSelectedRecord.Executed += new EventHandler<SLExtensions.Input.ExecutedEventArgs>(ClickAddSelectedRecord_Executed); |
|
120 Random rndNumbers = new Random(); |
146 Random rndNumbers = new Random(); |
|
147 _recordedVideoSequences.Add(new VideoSequence() |
|
148 { |
|
149 Path = Application.Current.Host.Source.Host.ToString() + "/test.wmv", |
|
150 RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0), |
|
151 BeginTrim = new TimeSpan(0, 0, 0), |
|
152 EndTrim = new TimeSpan(0, 0, 0), |
|
153 }); |
121 for (int i = 0; i < 10; i++) |
154 for (int i = 0; i < 10; i++) |
122 { |
155 { |
123 |
156 |
124 _recordedVideoSequences.Add(new VideoSequence() |
157 _recordedVideoSequences.Add(new VideoSequence() |
125 { |
158 { |
127 RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0), |
160 RunTime = new TimeSpan(0, rndNumbers.Next(10, 60), 0), |
128 BeginTrim = new TimeSpan(0, 0, 0), |
161 BeginTrim = new TimeSpan(0, 0, 0), |
129 EndTrim = new TimeSpan(0, 0, 0), |
162 EndTrim = new TimeSpan(0, 0, 0), |
130 }); |
163 }); |
131 } |
164 } |
132 ViewModelProductionTimeLine.SwitchVideo += new EventHandler<ProductionTimeLineVMEventArgs>(ViewModelProductionTimeLine_SwitchVideo); |
165 InitializeCommands(); |
133 ViewModelMasterVideoViewer.Tick += new EventHandler<VideoViewerVMEventArgs>(ViewModelMasterVideoViewer_Tick); |
166 } |
134 |
167 |
135 } |
168 private void ViewModelProductionTimeLine_SwitchVideo(object sender, ProductionTimeLineVMEventArgs e) |
136 |
|
137 void ViewModelProductionTimeLine_SwitchVideo(object sender, ProductionTimeLineVMEventArgs e) |
|
138 { |
169 { |
139 ViewModelMasterVideoViewer.Source = (e.VideoSequence.Path); |
170 ViewModelMasterVideoViewer.Source = (e.VideoSequence.Path); |
140 ViewModelMasterVideoViewer.GoTo(e.BeginAt); |
171 ViewModelMasterVideoViewer.GoTo(e.BeginAt); |
141 } |
172 } |
142 |
173 |
143 void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e) |
174 private void ViewModelMasterVideoViewer_Tick(object sender, VideoViewerVMEventArgs e) |
144 { |
175 { |
145 double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds+e.Position.TotalMilliseconds; |
176 double newPos = ViewModelProductionTimeLine.ActualVideoSequence.TimerIn.TotalMilliseconds+e.Position.TotalMilliseconds; |
146 if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos) |
177 if (ViewModelProductionTimeLine.ActualVideoSequence.TimerOut.TotalMilliseconds <= newPos) |
147 { |
178 { |
148 ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1]; |
179 ViewModelProductionTimeLine.ActualVideoSequence = ViewModelProductionTimeLine.TimeLine[ViewModelProductionTimeLine.TimeLine.IndexOf(ViewModelProductionTimeLine.ActualVideoSequence) + 1]; |
149 ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path; |
180 ViewModelMasterVideoViewer.Source = ViewModelProductionTimeLine.ActualVideoSequence.Path; |
150 ViewModelMasterVideoViewer.GoTo(TimeSpan.Zero); |
181 ViewModelMasterVideoViewer.GoTo(ViewModelProductionTimeLine.ActualVideoSequence.BeginTrim); |
151 } |
182 } |
152 ViewModelProductionTimeLine.Position = newPos; |
183 ViewModelProductionTimeLine.Position = newPos; |
153 } |
184 } |
154 |
185 |
155 void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
186 private void ClickAddSelectedRecord_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) |
156 { |
187 { |
157 if (ViewModelProductionTimeLine.SelectedChapter != -1) |
188 if (ViewModelProductionTimeLine.SelectedChapter != -1) |
158 { |
189 { |
159 if (!ViewModelProductionTimeLine.IsIndexing) |
190 if (!ViewModelProductionTimeLine.IsIndexing) |
160 { |
191 { |