private void OnCurrentTimeInvalidated(object sender, EventArgs e) { Clock clock = (Clock)sender; if (clock == null) { return; } _CurrentMediaTimeSpan = new TimeSpan(clock.CurrentTime.Value.Ticks); TimerText.Text = _CurrentMediaTimeSpan.ToString(); Slider1.Value = _CurrentMediaTimeSpan.Seconds; //DebugHelp3D.Trace.Message(_CurrentMediaTimeSpan.TotalSeconds.ToString()); // determine if we need to pause and show an annotation if (((int)_CurrentMediaTimeSpan.TotalSeconds) == 0) { _CurrentSecond = 0; } if (_CurrentSecond <= (int)_CurrentMediaTimeSpan.TotalSeconds) { //DebugHelp3D.Trace.Message(_CurrentSecond.ToString()); VideoAnnotationItem sci = _VideoAnnotation.FindAnnotation(_CurrentMediaTimeSpan); if (sci != null) { Storyboard s = (Storyboard)DocumentRoot.FindResource("OnLoaded"); s.Seek(DocumentRoot, TimeSpan.FromSeconds(sci.InkTimeSpan.TotalSeconds), TimeSeekOrigin.BeginTime); PauseShowAnnotation(sci); } _CurrentSecond = (int)_CurrentMediaTimeSpan.TotalSeconds + 1; } }
public VideoAnnotationItem FindAnnotation(TimeSpan time) { if ((time == null) || (Data == null)) { return(null); } VideoAnnotationItem sci = FindVideoAnnotationItemTimeSpan(Data.VideoAnnotationItems, time); return(sci); }
private void SeekShowAnnotation(VideoAnnotationItem sci) { if (sci == null) { return; } PauseShowAnnotation(sci); Storyboard s = (Storyboard)DocumentRoot.FindResource("OnLoaded"); s.Seek(DocumentRoot, TimeSpan.FromSeconds(sci.InkTimeSpan.TotalSeconds), TimeSeekOrigin.BeginTime); _CurrentSecond = (int)sci.InkTimeSpan.TotalSeconds; }
private void RemoveItem(VideoAnnotationItemCollection scic, string id) { if ((id == null) || (Data == null)) { return; } VideoAnnotationItem sci = FindVideoAnnotationItem(scic, id); if (sci != null) { scic.Remove(sci); } }
private void AddItem(VideoAnnotationItemCollection scic, StrokeCollection strokes, string id, string text, TimeSpan time, Point pt) { VideoAnnotationItem sci = new VideoAnnotationItem(); sci.ID = id; sci.Title = id; sci.Description = text; sci.Strokes = strokes; sci.InkTimeSpan = time; sci.PositionLeft = pt.X; sci.PositionTop = pt.Y; scic.Add(sci); }
private void PauseShowAnnotation(VideoAnnotationItem sci) { if (sci == null) { return; } Application.Current.Windows[1].Height = _ANNOTATE_HEIGHT; ToggleButton1.IsChecked = true; ToggleButton1.Content = "Save"; myInkCanvas.Strokes = sci.Strokes.Clone(); TextBox1.Text = sci.Description; Button1.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); // forward click event to pause button }
private VideoAnnotationItem FindVideoAnnotationItemTimeSpan(VideoAnnotationItemCollection scic, TimeSpan time) { VideoAnnotationItem sciRet = null; foreach (VideoAnnotationItem sci in scic) { if ((int)sci.InkTimeSpan.TotalSeconds == (int)time.TotalSeconds) { sciRet = sci; break; } } return(sciRet); }
private VideoAnnotationItem FindVideoAnnotationItem(VideoAnnotationItemCollection scic, string id) { VideoAnnotationItem sciRet = null; foreach (VideoAnnotationItem sci in scic) { if (sci.ID == id) { sciRet = sci; break; } } return(sciRet); }
void OnAnnotationsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if ((e.AddedItems == null) || (e.AddedItems.Count == 0)) { return; } VideoAnnotationItem sci = e.AddedItems[0] as VideoAnnotationItem; if (sci == null) { return; } SeekShowAnnotation(sci); }