From 7332d85770610d84cda9dce874e7ab69bc28901d Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Thu, 26 Jul 2012 19:02:55 +0200 Subject: [PATCH] Updated the measure counter engraver to the new internal workings of lilypond --- measureCounterEngraver.ily | 95 ++++++++++++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 37 deletions(-) diff --git a/measureCounterEngraver.ily b/measureCounterEngraver.ily index 3140549..dfc2ad7 100644 --- a/measureCounterEngraver.ily +++ b/measureCounterEngraver.ily @@ -1,3 +1,29 @@ +\version "2.15.40" + +% All this code was copied and adapted from lilypond's input/regression/scheme-text-spanner.ly +% The real measure counter engraver was done by David Nalesnik in April 2012 +% +#(define my-grob-descriptions '()) + +#(define my-event-classes (ly:make-context-mod)) + +defineEventClass = +#(define-void-function (parser location class parent) + (symbol? symbol?) + (ly:add-context-mod + my-event-classes + `(apply + ,(lambda (context class parent) + (ly:context-set-property! + context + 'EventClasses + (event-class-cons + class + parent + (ly:context-property context 'EventClasses '())))) + ,class ,parent))) + +\defineEventClass #'measure-counter-event #'span-event #(define (define-grob-property symbol type? description) (if (not (equal? (object-property symbol 'backend-doc) #f)) @@ -15,39 +41,6 @@ (counter ,integer? "initial number of a measure count") )) -#(define-event-class 'measure-counter-event - '(measure-counter-event - span-event - music-event - StreamEvent)) - -#(define measure-counter-types - '( - (MeasureCounterEvent - . ((description . "Used to signal the start and end of a measure counter.") - (types . (general-music measure-counter-event span-event event)) - )) - )) - -#(set! - measure-counter-types - (map (lambda (x) - (set-object-property! (car x) - 'music-description - (cdr (assq 'description (cdr x)))) - (let ((lst (cdr x))) - (set! lst (assoc-set! lst 'name (car x))) - (set! lst (assq-remove! lst 'description)) - (hashq-set! music-name-to-property-table (car x) lst) - (cons (car x) lst))) - measure-counter-types)) - -#(set! music-descriptions - (append measure-counter-types music-descriptions)) - -#(set! music-descriptions - (sort music-descriptions alist