コード例 #1
0
        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;
        }
コード例 #2
0
        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()));
        }
コード例 #3
0
        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)));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        /// <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()));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
 protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end)
 {
 }
コード例 #8
0
 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();
 }