]> git.donarmstrong.com Git - lilypond.git/commitdiff
Svg with woff fonts: move framework support to backend-lib.scm.
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 7 Jun 2010 08:03:57 +0000 (10:03 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 24 Jun 2010 14:04:55 +0000 (16:04 +0200)
scm/backend-library.scm
scm/output-lib.scm

index cc689d848273502ada9073aa84e05880d9a82a77..0c80ee66b3c6541ac7c15cb67ca5f105dcfee223 100644 (file)
     (lambda (x)
       (module-remove! output-module x))
     missing-stencil-list))
+
+(define (filter-out pred? lst)
+  (filter (lambda (x) (not (pred? x))) lst))
+
+(define-public (font-name-split font-name)
+  "Return (FONT-NAME . DESIGN-SIZE) from FONT-NAME string or #f."
+  (let ((match (regexp-exec (make-regexp "(.*)-([0-9]*)") font-name)))
+    (if (regexp-match? match)
+       (cons (match:substring match 1) (match:substring match 2))
+       (cons font-name-designsize #f))))
+
+;; Example of a pango-physical-font
+;; ("Emmentaler-11" "/home/janneke/vc/lilypond/out/share/lilypond/current/fonts/otf/emmentaler-11.otf" 0)
+(define-public (pango-pf-font-name pango-pf)
+  "Return the font-name of the pango physical font PANGO-PF."
+  (list-ref pango-pf 0))
+(define-public (pango-pf-file-name pango-pf)
+  "Return the file-name of the pango physical font PANGO-PF."
+  (list-ref pango-pf 1))
+(define-public (pango-pf-fontindex pango-pf)
+  "Return the fontindex of the pango physical font PANGO-PF."
+  (list-ref pango-pf 2))
+
+(define (pango-font-name pango-font)
+  (pango-pf-font-name (car (ly:pango-font-physical-fonts pango-font))))
+
+(define-public (define-fonts paper define-font define-pango-pf)
+  "Return a string of all fonts used in PAPER, invoking the functions
+DEFINE-FONT DEFINE-PANGO-PF for producing the actual font definition."
+
+  (let* ((font-list (ly:paper-fonts paper))
+        (pango-fonts (filter ly:pango-font? font-list))
+        (other-fonts (filter-out ly:pango-font? font-list))
+        (other-font-names (map ly:font-name other-fonts))
+        (pango-only-fonts
+         (filter-out (lambda (x)
+                       (member (pango-font-name x) other-font-names))
+                     pango-fonts)))
+
+  (define (font-load-command font)
+    (let* ((font-name (ly:font-name font))
+          (designsize (ly:font-design-size font))
+          (magnification (* (ly:font-magnification font)))
+          (ops (ly:output-def-lookup paper 'output-scale))
+          (scaling (* ops magnification designsize)))
+      (if (equal? font-name "unknown")
+         (display (list font font-name)))
+      (define-font font font-name scaling)))
+
+  (define (pango-font-load-command pango-font)
+    (let* ((pango-pf (car (ly:pango-font-physical-fonts pango-font)))
+          (font-name (pango-pf-font-name pango-pf))
+          (scaling (ly:output-def-lookup paper 'output-scale)))
+      (if (equal? font-name "unknown")
+         (display (list pango-font font-name)))
+      (define-pango-pf pango-pf font-name scaling)))
+
+  (string-append
+   (apply string-append (map font-load-command other-fonts))
+   (apply string-append (map pango-font-load-command pango-only-fonts)))))
index 61175c58969a1fe973379616506d1958f756e0f0..409e8c1f8816f6f82dc8a777b1cb917cbfa66e45 100644 (file)
@@ -891,62 +891,3 @@ between the two text elements."
 (define-public (laissez-vibrer::print grob)
  (ly:tie::print grob))
 
-(define (filter-out pred? lst)
-  (filter (lambda (x) (not (pred? x))) lst))
-
-(define-public (font-name-split font-name)
-  "Return (FONT-NAME . DESIGN-SIZE) from FONT-NAME string or #f."
-  (let ((match (regexp-exec (make-regexp "(.*)-([0-9]*)") font-name)))
-    (if (regexp-match? match)
-       (cons (match:substring match 1) (match:substring match 2))
-       (cons font-name-designsize #f))))
-
-;; Example of a pango-physical-font
-;; ("Emmentaler-11" "/home/janneke/vc/lilypond/out/share/lilypond/current/fonts/otf/emmentaler-11.otf" 0)
-(define-public (pango-pf-font-name pango-pf)
-  "Return the font-name of the pango physical font PANGO-PF."
-  (list-ref pango-pf 0))
-(define-public (pango-pf-file-name pango-pf)
-  "Return the file-name of the pango physical font PANGO-PF."
-  (list-ref pango-pf 1))
-(define-public (pango-pf-fontindex pango-pf)
-  "Return the fontindex of the pango physical font PANGO-PF."
-  (list-ref pango-pf 2))
-
-(define (pango-font-name pango-font)
-  (pango-pf-font-name (car (ly:pango-font-physical-fonts pango-font))))
-
-(define-public (define-fonts paper define-font define-pango-pf)
-  "Return a string of all fonts used in PAPER, invoking the functions
-DEFINE-FONT DEFINE-PANGO-PF for producing the actual font definition."
-
-  (let* ((font-list (ly:paper-fonts paper))
-        (pango-fonts (filter ly:pango-font? font-list))
-        (other-fonts (filter-out ly:pango-font? font-list))
-        (other-font-names (map ly:font-name other-fonts))
-        (pango-only-fonts
-         (filter-out (lambda (x)
-                       (member (pango-font-name x) other-font-names))
-                     pango-fonts)))
-
-  (define (font-load-command font)
-    (let* ((font-name (ly:font-name font))
-          (designsize (ly:font-design-size font))
-          (magnification (* (ly:font-magnification font)))
-          (ops (ly:output-def-lookup paper 'output-scale))
-          (scaling (* ops magnification designsize)))
-      (if (equal? font-name "unknown")
-         (display (list font font-name)))
-      (define-font font font-name scaling)))
-
-  (define (pango-font-load-command pango-font)
-    (let* ((pango-pf (car (ly:pango-font-physical-fonts pango-font)))
-          (font-name (pango-pf-font-name pango-pf))
-          (scaling (ly:output-def-lookup paper 'output-scale)))
-      (if (equal? font-name "unknown")
-         (display (list pango-font font-name)))
-      (define-pango-pf pango-pf font-name scaling)))
-
-  (string-append
-   (apply string-append (map font-load-command other-fonts))
-   (apply string-append (map pango-font-load-command pango-only-fonts)))))