]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-music-display-methods.scm
Merge branch 'master' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / scm / define-music-display-methods.scm
index 66beb27cea6373b35ae9d3f39942878dcbb2b10e..91be3e28b38bfc0892a5cea2261dbb2523c33f13 100644 (file)
@@ -598,6 +598,7 @@ Otherwise, return #f."
        (fig (ly:music-property figure 'figure))
        (bracket-start (ly:music-property figure 'bracket-start))
        (bracket-stop (ly:music-property figure 'bracket-stop)))
+
     (format #f "~a~a~a~a"
            (if (null? bracket-start) "" "[")
            (cond ((null? fig) "_")
@@ -605,12 +606,12 @@ Otherwise, return #f."
                  (else fig))
            (if (null? alteration)
                ""
-               (case alteration
-                 ((-4) "--")
-                 ((-2) "-")
-                 ((0) "!")
-                 ((2) "+")
-                 ((4) "++")
+               (cond 
+                 ((= alteration DOUBLE-FLAT) "--")
+                 ((= alteration FLAT) "-")
+                 ((= alteration NATURAL) "!")
+                 ((= alteration SHARP) "+")
+                 ((= alteration DOUBLE-SHARP) "++")
                  (else "")))
            (if (null? bracket-stop) "" "]"))))
 
@@ -829,10 +830,14 @@ Otherwise, return #f."
 ;;; Layout properties
 
 (define-display-method OverrideProperty (expr parser)
-  (let ((symbol          (ly:music-property expr 'symbol))
-       (properties (ly:music-property expr 'grob-property-path))
-       (value    (ly:music-property expr 'grob-value))
-       (once     (ly:music-property expr 'once)))
+  (let* ((symbol         (ly:music-property expr 'symbol))
+        (property-path   (ly:music-property expr 'grob-property-path))
+        (properties      (if (pair? property-path)
+                             property-path
+                             (list (ly:music-property expr 'grob-property))))
+        (value   (ly:music-property expr 'grob-value))
+        (once    (ly:music-property expr 'once)))
+
     (format #f "~a\\override ~a~a #'~a = ~a~a"
            (if (or (null? once)
                    (not once))
@@ -895,10 +900,15 @@ Otherwise, return #f."
            ?unit-count)))
 
 ;;; \clef 
-(define clef-name-alist (map (lambda (name+vals)
-                              (cons (cdr name+vals)
-                                    (car name+vals)))
-                            supported-clefs))
+(define clef-name-alist #f)
+(define-public (memoize-clef-names clefs)
+  "Initialize `clef-name-alist', if not already set."
+  (if (not clef-name-alist)
+      (set! clef-name-alist
+            (map (lambda (name+vals)
+                   (cons (cdr name+vals)
+                         (car name+vals)))
+                 clefs))))
 
 (define-extra-display-method ContextSpeccedMusic (expr parser)
   "If `expr' is a clef change, return \"\\clef ...\"