X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=inline;f=scm%2Foutput-ps.scm;h=5db157f282e82603b90fa11e4604bd80bcb63cab;hb=91616c02f04b7608af75c995ce3cba0302c5917c;hp=3057f513a7de8539a70b1c22ef6bf791cd3117bd;hpb=03147447d5826e0f909150bd7720d88a06661be7;p=lilypond.git diff --git a/scm/output-ps.scm b/scm/output-ps.scm index 3057f513a7..5db157f282 100644 --- a/scm/output-ps.scm +++ b/scm/output-ps.scm @@ -17,11 +17,12 @@ (define-module (scm output-ps) #:re-export (quote) - #:export (define-fonts - unknown - select-font + + ;; JUNK this -- see lily.scm: ly:all-output-backend-commands + #:export (unknown blank dot + white-dot beam bracket dashed-slur @@ -31,29 +32,22 @@ symmetric-x-triangle ez-ball comment - end-output - experimental-on repeat-slash - header-end - header placebox bezier-sandwich - start-system - stop-system - stop-last-system horizontal-line + embedded-ps filledbox round-filled-box text + white-text tuplet polygon draw-line - define-origin no-origin - start-page - stop-page )) + (use-modules (guile) (ice-9 regex) (srfi srfi-1) @@ -61,6 +55,15 @@ (scm framework-ps) (lily)) + +;;(map export +;; (append (ly:all-stencil-expressions) (ly:all-output-backend-commands))) + +;; huh? +;;(write (ly:all-output-backend-commands)) +;;(write (ly:all-stencil-expressions)) + + ;;; helper functions, not part of output interface (define (escape-parentheses s) (regexp-substitute/global #f "(^|[^\\])([\\(\\)])" s 'pre 1 "\\" 2 'post)) @@ -78,6 +81,7 @@ (escape-parentheses val) ") def\n")) + (define (ps-number-def prefix key val) (let ((s (if (integer? val) (ly:number->string val) @@ -113,9 +117,6 @@ (ps-font-command font) " setfont " "(\\" (ly:inexact->string i 8) ") show" )) -(define (comment s) - (string-append "% " s "\n")) - (define (dashed-line thick on off dx dy) (string-append (ly:number->string dx) " " @@ -141,9 +142,8 @@ ; todo: merge with tex-font-command? - - -(define (define-origin file line col) "") +(define (embedded-ps string) + string) (define (dot x y radius) (string-append @@ -151,6 +151,12 @@ (ly:numbers->string (list x y radius)) " draw_dot")) +(define (white-dot x y radius) + (string-append + " " + (ly:numbers->string + (list x y radius)) " draw_white_dot")) + (define (draw-line thick x1 y1 x2 y2) (string-append "1 setlinecap 1 setlinejoin " @@ -160,9 +166,6 @@ (ly:number->string x2) " " (ly:number->string y2) " lineto stroke")) -(define (end-output) - "\nend-lilypond-output\n") - (define (ez-ball ch letter-col ball-col) (string-append " (" ch ") " @@ -179,16 +182,13 @@ (draw-line th x1 0 x2 0)) (define (lily-def key val) - (let ((prefix "lilypondpaper")) + (let ((prefix "lilypondlayout")) (if (string=? (substring key 0 (min (string-length prefix) (string-length key))) prefix) (string-append "/" key " {" val "} bind def\n") (string-append "/" key " (" val ") def\n")))) -(define (no-origin) "") - - (define (placebox x y s) (string-append @@ -225,11 +225,10 @@ (define (text font s) (let* - ( - ;; ugh, we should find a better way to - ;; extract the hsbw for /space from the font. - - (space-length (cdar (ly:text-dimension font "t"))) + ;; ugh, we should find a better way to + ;; extract the hsbw for /space from the font. + + ((space-length (cdar (ly:text-dimension font "t"))) (commands '()) (add-command (lambda (x) (set! commands (cons x commands)))) ) @@ -241,20 +240,26 @@ (add-command (string-append "(" (ps-encoding word) ") show\n"))) - (if (equal? #\space chr) + (if (equal? #\space chr) (add-command (string-append (number->string space-length) " 0.0 rmoveto ")) ) - (if (equal? #\space chr) + (if (equal? #\space chr) "" (string-append word (make-string 1 chr)))) "" - (string-append s " ")) + (string-append s " ")) (string-append (ps-font-command font) " setfont " (string-join (reverse commands))) )) - + + +(define (white-text scale s) + (let ((mystring (string-append "(" s ") " (number->string scale) " /Helvetica-bold " + " draw_white_text"))) + mystring)) + (define (unknown) "\n unknown\n") @@ -268,3 +273,10 @@ (ly:number->string dx) " " (ly:number->string dy) " draw_zigzag_line")) + + +(define (grob-cause grob) + "") + +(define (no-origin) + "")