protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end) { if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { start = start.Translate(CurrentScore.DefaultPageSettings); end = end.Translate(CurrentScore.DefaultPageSettings); } if (playbackCursor == null) { playbackCursor = new Line(); playbackCursor.RenderTransform = playbackCursorTransform; playbackCursor.Stroke = new SolidColorBrush(Colors.Magenta); playbackCursor.X1 = 0; playbackCursor.X2 = 0; playbackCursor.Y1 = 0; playbackCursor.Y2 = end.Y - start.Y; playbackCursor.Visibility = BoolToVisibility(position.IsValid); playbackCursor.StrokeThickness = 1; Canvas.Children.Add(playbackCursor); } playbackCursorTransform.X = start.X; playbackCursorTransform.Y = start.Y; }
public void DrawPlaybackCursor(PlaybackCursorPosition position) { if (position.Timestamp + position.Duration < DateTime.Now) { return; } var system = CurrentScore.Systems.ElementAt(position.SystemNumber - 1); if (system == null) { return; } DrawPlaybackCursor(position, new Point(position.PositionX + 6, system.Staves.First().LinePositions.First()), new Point(position.PositionX + 6, system.Staves.Last().LinePositions.Last())); }
private static void PlaybackCursorPositionChanged(NoteViewer control, PlaybackCursorPosition oldValue, PlaybackCursorPosition newValue) { if (control.InnerScore == null) { return; } if (control.Renderer == null) { return; } if (!newValue.IsValid) { return; } control.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => control.Renderer.DrawPlaybackCursor(newValue))); }
private static void PlaybackCursorPositionChanged(NoteViewer control, PlaybackCursorPosition oldValue, PlaybackCursorPosition newValue) { if (control.InnerScore == null) { return; } if (control.Renderer == null) { return; } if (!newValue.IsValid) { return; } control.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => control.Renderer.DrawPlaybackCursor(newValue)); }
/// <summary> /// Draws playback cursor /// </summary> /// <param name="position"></param> public void DrawPlaybackCursor(PlaybackCursorPosition position) { #if CSHTML5 if (position.Timestamp.AddTicks(position.Duration.Ticks) < DateTime.Now) { return; } #else if (position.Timestamp + position.Duration < DateTime.Now) { return; } #endif var system = CurrentScore.Systems.ElementAt(position.SystemNumber - 1); if (system == null) { return; } DrawPlaybackCursor(position, new Point(position.PositionX, system.Staves.First().LinePositions.First()), new Point(position.PositionX, system.Staves.Last().LinePositions.Last())); }
private static void PlaybackCursorPositionChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { NoteViewer control = (NoteViewer)obj; PlaybackCursorPosition oldValue = (PlaybackCursorPosition)args.OldValue; PlaybackCursorPosition newValue = (PlaybackCursorPosition)args.NewValue; if (control.InnerScore == null) { return; } if (control.Renderer == null) { return; } if (!newValue.IsValid) { return; } control.Renderer.DrawPlaybackCursor(newValue); }
protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end) { }
protected abstract void DrawPlaybackCursor(PlaybackCursorPosition position, Point start, Point end);
protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end) { throw new NotImplementedException(); }