]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/harp-pedals.scm
Merge branch 'master' into nested-bookparts
[lilypond.git] / scm / harp-pedals.scm
index 8f7756acbafb3e7b34e6e6038a951c66c9ed379d..fef1760db592d6675cb54ab5eab2274de5c8db81 100644 (file)
@@ -129,12 +129,17 @@ divider) and @code{space-after-divider} (box spacing after the divider).
         (box-hheight (* size (/ (assoc-get 'box-height details 1.0) 2))) ; half the box-height, saves some divisions by 2
         (spacebeforedivider (* size (assoc-get 'space-before-divider details 0.8))) ; full space between boxes before the first divider
         (spaceafterdivider (* size (assoc-get 'space-after-divider details 0.8))) ; full space between boxes
-        ;(spacebeforedivider (/ (+ box-width (* 8 spaceafterdivider)) 8))
+        (circle-thickness (* (ly:output-def-lookup layout 'line-thickness)
+                       (assoc-get 'circle-thickness details 0.5)))
+        (circle-x-padding (* size (assoc-get 'circle-x-padding details 0.15)))
+        (circle-y-padding (* size (assoc-get 'circle-y-padding details 0.2)))
         (box-x-dimensions (lambda (prev-x p space) (cons (+ prev-x space)
                                                    (+ prev-x space box-width))))
         (box-y-dimensions (lambda (prev-x p space) (cons (- (* p dy) box-hheight)
                                                          (+ (* p dy) box-hheight))))
-        (divider-stencil (lambda (xpos) (make-line-stencil line-width xpos (- 0 dy box-hheight) xpos (+ dy box-hheight))))
+        (divider-stencil (lambda (xpos) (make-line-stencil line-width
+                                                     xpos (- 0 dy box-hheight)
+                                                     xpos (+ dy box-hheight))))
         (result (let process-pedal  ((remaining pedal-list)
                                      (prev-x 0)
                                      (stencils '())
@@ -150,20 +155,28 @@ divider) and @code{space-after-divider} (box spacing after the divider).
                         (stencil (make-filled-box-stencil
                                    (box-x-dimensions prev-x p space)
                                    (box-y-dimensions prev-x p space)))
-                                   ;(circle-stencil (if circled (rounded-box-stencil stencil 0.05 0.3 0.1 ) stencil))
-                                   (circle-stencil (if circled (circle-stencil stencil 0.05 0.2 ) stencil))
+                        (pedal-stencil 
+                          (if circled 
+                              (ellipse-stencil stencil circle-thickness 
+                                            circle-x-padding circle-y-padding)
+                              stencil))
                         (new-prev-x (+ prev-x space box-width)))
-                      (process-pedal (cdr remaining) new-prev-x (cons circle-stencil stencils) #f space)))
+                    (process-pedal (cdr remaining) new-prev-x 
+                                   (cons pedal-stencil stencils) #f space)))
               ((#\|)  ; Divider line
                   (let* ((xpos (+ prev-x space))
                          (stencil (divider-stencil xpos))
                          (new-prev-x (+ prev-x space)))
-                    (process-pedal (cdr remaining) new-prev-x (cons stencil stencils) circled spaceafterdivider)))
+                    (process-pedal (cdr remaining) new-prev-x 
+                                   (cons stencil stencils) 
+                                   circled spaceafterdivider)))
               ((#\o)  ; Next pedal should be circled
                   (process-pedal (cdr remaining) prev-x stencils #t space))
               (else
-                  (ly:warning "Unhandled entry in harp-pedal: ~a" (car remaining))
-                  (process-pedal (cdr remaining) prev-x stencils circled space))))))
+                  (ly:warning "Unhandled entry in harp-pedal: ~a" 
+                              (car remaining))
+                  (process-pedal (cdr remaining) 
+                                 prev-x stencils circled space))))))
         (final-x (car result))
         (stencils (cdr result)))
     ; Add the horizontal line and combine all stencils: