]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/output-lib.scm
T1224: Avoid using deprecated %module-public-interface in initialization
[lilypond.git] / scm / output-lib.scm
index 61175c58969a1fe973379616506d1958f756e0f0..716f36a735071a4061787646bbfb743fd51e6041 100644 (file)
@@ -173,6 +173,55 @@ and duration-log @var{log}."
           letter)))
      radius X)))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; clipping
+
+(define-public (make-rhythmic-location bar-num num den)
+  (cons
+   bar-num (ly:make-moment num den)))
+
+(define-public (rhythmic-location? a)
+  (and (pair? a)
+       (integer? (car a))
+       (ly:moment? (cdr a))))
+
+(define-public (make-graceless-rhythmic-location loc)
+  (make-rhythmic-location
+   (car loc)
+   (ly:moment-main-numerator (rhythmic-location-measure-position loc))
+   (ly:moment-main-denominator (rhythmic-location-measure-position loc))))
+
+(define-public rhythmic-location-measure-position cdr)
+(define-public rhythmic-location-bar-number car)
+
+(define-public (rhythmic-location<? a b)
+  (cond
+   ((< (car a) (car b)) #t)
+   ((> (car a) (car b)) #f)
+   (else
+    (ly:moment<? (cdr a) (cdr b)))))
+
+(define-public (rhythmic-location<=? a b)
+  (not (rhythmic-location<? b a)))
+(define-public (rhythmic-location>=? a b)
+  (rhythmic-location<? a b))
+(define-public (rhythmic-location>? a b)
+  (rhythmic-location<? b a))
+
+(define-public (rhythmic-location=? a b)
+  (and (rhythmic-location<=? a b)
+       (rhythmic-location<=? b a)))
+
+(define-public (rhythmic-location->file-string a)
+  (ly:format "~a.~a.~a"
+            (car a)
+            (ly:moment-main-numerator (cdr a))
+            (ly:moment-main-denominator (cdr a))))
+
+(define-public (rhythmic-location->string a)
+  (ly:format "bar ~a ~a"
+            (car a)
+            (ly:moment->string (cdr a))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; break visibility
@@ -891,62 +940,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)))))