From 3163ce095f3891e15c06db752e418e487a3ca157 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Sat, 10 Mar 2012 16:24:33 +0100 Subject: [PATCH] Use elements-callback for layout-instruction event reinterpretation --- ly/music-functions-init.ly | 8 +++++--- scm/lily-library.scm | 36 ++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 783f7990ce..80c3020ac0 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -1001,12 +1001,14 @@ a context modification duplicating their effect.") (ly:add-context-mod mods (list 'apply (ly:music-property m 'procedure)))) - ((SequentialMusic SimultaneousMusic) - (for-each musicop (ly:music-property m 'elements))) ((ContextSpeccedMusic) (if (or (not ctx) (eq? ctx (ly:music-property m 'context-type))) - (musicop (ly:music-property m 'element))))))) + (musicop (ly:music-property m 'element)))) + (else + (let ((callback (ly:music-property m 'elements-callback))) + (if (procedure? callback) + (for-each musicop (callback m)))))))) (musicop music) mods)) diff --git a/scm/lily-library.scm b/scm/lily-library.scm index 514f5b40fb..b109b81be6 100644 --- a/scm/lily-library.scm +++ b/scm/lily-library.scm @@ -285,17 +285,19 @@ bookoutput function" (ly:add-context-mod mods (list 'apply (ly:music-property m 'procedure)))) - ((SequentialMusic SimultaneousMusic) - (fold loop context (ly:music-property m 'elements))) ((ContextSpeccedMusic) (loop (ly:music-property m 'element) (ly:music-property m 'context-type))) - (else (if (and warn (ly:duration? (ly:music-property m 'duration))) - (begin - (ly:music-warning - music - (_ "Music unsuitable for context-mod")) - (set! warn #f)))))) + (else + (let ((callback (ly:music-property m 'elements-callback))) + (if (procedure? callback) + (fold loop context (callback m)) + (if (and warn (ly:duration? (ly:music-property m 'duration))) + (begin + (ly:music-warning + music + (_ "Music unsuitable for context-mod")) + (set! warn #f)))))))) context) mods)) @@ -338,8 +340,6 @@ bookoutput function" (ly:music-property m 'symbol) (ly:music-property m 'grob-property-path))))) (case (ly:music-property m 'name) - ((SequentialMusic SimultaneousMusic) - (fold loop mods (ly:music-property m 'elements))) ((ApplyContext) (ly:add-context-mod mods (list 'apply @@ -360,12 +360,16 @@ bookoutput function" (ly:music-warning music (ly:format (_ "Cannot find context-def \\~a") sym)))))) - (else (if (and warn (ly:duration? (ly:music-property m 'duration))) - (begin - (ly:music-warning - music - (_ "Music unsuitable for output-def")) - (set! warn #f)))))) + (else + (let ((callback (ly:music-property m 'elements-callback))) + (if (procedure? callback) + (fold loop mods (callback m)) + (if (and warn (ly:duration? (ly:music-property m 'duration))) + (begin + (ly:music-warning + music + (_ "Music unsuitable for output-def")) + (set! warn #f)))))))) mods))) -- 2.39.2