2 (define-module (scm output-socket)
11 (define (dummy . rest)
14 (display (ly:all-stencil-expressions))
17 (module-define! (current-module)
21 (ly:all-stencil-expressions))
24 (define-public (draw-line thick x1 y1 x2 y2)
25 (format "drawline ~a ~a ~a ~a ~a"
28 (define-public (polygon xy-coords blot do-fill)
29 (format "polygon ~a ~a ~a"
31 (if do-fill "True" "False")
33 (map number->string xy-coords))
36 (define-public (named-glyph font glyph)
37 (format "glyphshow ~a \"~a\" ~a \"~a\""
38 (ly:font-glyph-name-to-charcode font glyph)
40 (modified-font-metric-font-scaling font)
44 (define-public (placebox x y s)
45 (format "at ~a ~a ~a\n" x y s))
47 (define-public (round-filled-box breapth width depth height blot-diameter)
48 (format "draw_round_box ~a ~a ~a ~a ~a"
49 breapth width depth height blot-diameter
52 (define (event-cause grob)
54 ((cause (ly:grob-property grob 'cause)))
57 ((ly:stream-event? cause) cause)
61 (define (grob-bbox grob offset)
63 ((x-ext (ly:grob-extent grob grob X))
64 (y-ext (ly:grob-extent grob grob Y))
68 (if (interval-empty? x-ext)
69 (set! x-ext '(0 . 0)))
71 (if (interval-empty? y-ext)
72 (set! y-ext '(0 . 0)))
74 (list (+ x (car x-ext))
80 (define-public (no-origin)
83 (define-public (grob-cause offset grob)
85 ((cause (event-cause grob))
86 (tag (if (and cause (integer? (ly:event-property cause 'input-tag)))
87 (ly:event-property cause 'input-tag)
89 (name (cdr (assoc 'name (ly:grob-property grob 'meta))))
93 (append (list "cause ~a \"~a\" ~a ~a ~a ~a\n"
96 (grob-bbox grob offset))
100 (define (escape-string str)
101 (string-regexp-substitute
103 (string-regexp-substitute "\"" "\\\"" str)))
105 (define-public (utf-8-string
109 (format "utf-8 \"~a\" \"~a\""
110 (escape-string descr)
112 ;; don't want unescaped spaces.
113 (escape-string string)
117 (define (bezier-sandwich lst thick)
120 "bezier_sandwich ~a [~a]"
123 (string-join (map (lambda (x) (format "(~a,~a)" (car x) (cdr x)))