CVSROOT: /cvsroot/lilypond
Module name: lilypond
Branch:
Changes by: Han-Wen Nienhuys <[EMAIL PROTECTED]> 05/05/25 10:22:34
Modified files:
. : ChangeLog
lily : global-context.cc
scm : define-grobs.scm define-music-properties.scm
lily-library.scm music-functions.scm
Log message:
* scm/define-music-properties.scm (all-music-properties): document
length-callback and start-callback as "read-only".
* scm/music-functions.scm (unfold-repeats): rewrite. Cannot set
length-callback after creation.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3656&tr2=1.3657&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/global-context.cc.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grobs.scm.diff?tr1=1.198&tr2=1.199&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-music-properties.scm.diff?tr1=1.36&tr2=1.37&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily-library.scm.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/music-functions.scm.diff?tr1=1.146&tr2=1.147&r1=text&r2=text
Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3656 lilypond/ChangeLog:1.3657
--- lilypond/ChangeLog:1.3656 Wed May 25 09:04:06 2005
+++ lilypond/ChangeLog Wed May 25 10:22:34 2005
@@ -1,5 +1,11 @@
2005-05-25 Han-Wen Nienhuys <[EMAIL PROTECTED]>
+ * scm/define-music-properties.scm (all-music-properties): document
+ length-callback and start-callback as "read-only".
+
+ * scm/music-functions.scm (unfold-repeats): rewrite. Cannot set
+ length-callback after creation.
+
* scripts/convert-ly.py (conv): unfoldrepeats -> unfoldRepeats,
compressmusic -> compressMusic.
Index: lilypond/lily/global-context.cc
diff -u lilypond/lily/global-context.cc:1.30
lilypond/lily/global-context.cc:1.31
--- lilypond/lily/global-context.cc:1.30 Tue Apr 12 22:49:28 2005
+++ lilypond/lily/global-context.cc Wed May 25 10:22:34 2005
@@ -155,7 +155,8 @@
if (!get_score_context ())
{
SCM sym = ly_symbol2scm ("Score");
- Context_def *t = unsmob_context_def (find_context_def (get_output_def
(), sym));
+ Context_def *t = unsmob_context_def (find_context_def (get_output_def
(),
+ sym));
if (!t)
error (_f ("can't find `%s' context", "Score"));
@@ -177,6 +178,7 @@
SCM lst = get_property ("finalizations");
set_property ("finalizations", SCM_EOL);
for (SCM s = lst; scm_is_pair (s); s = scm_cdr (s))
+
/* TODO: make safe. */
scm_primitive_eval (scm_car (s));
}
Index: lilypond/scm/define-grobs.scm
diff -u lilypond/scm/define-grobs.scm:1.198 lilypond/scm/define-grobs.scm:1.199
--- lilypond/scm/define-grobs.scm:1.198 Wed May 25 01:16:45 2005
+++ lilypond/scm/define-grobs.scm Wed May 25 10:22:34 2005
@@ -861,7 +861,7 @@
(before-line-breaking-callback . ,Paper_column::before_line_breaking)
(X-extent-callback . ,Axis_group_interface::group_extent_callback)
-; (print-function . ,Paper_column::print) (font-name . "ecrm8")
(Y-extent-callback . #f)
+ (print-function . ,Paper_column::print) (font-name . "ecrm8")
(Y-extent-callback . #f)
(meta . ((interfaces . (paper-column-interface axis-group-interface
spaceable-grob-interface item-interface ))))
))
Index: lilypond/scm/define-music-properties.scm
diff -u lilypond/scm/define-music-properties.scm:1.36
lilypond/scm/define-music-properties.scm:1.37
--- lilypond/scm/define-music-properties.scm:1.36 Tue Apr 12 22:49:25 2005
+++ lilypond/scm/define-music-properties.scm Wed May 25 10:22:34 2005
@@ -58,7 +58,8 @@
(label ,markup? "label of a mark.")
(last-pitch ,ly:pitch? "The last pitch after relativization.")
(length ,ly:moment? "The duration of this music")
- (length-callback ,procedure? "How to compute the duration of this music")
+ (length-callback ,procedure? "How to compute the duration of this music.
This property
+can only be defined as initializer in @file{define-music-types.scm}.")
(internal-class-name ,string? "C++ class to use for this Music object")
(name ,symbol? "Name of this music object")
(numerator ,integer? "numerator of a time signature")
@@ -73,7 +74,8 @@
(pitch-alist ,list? "list of pitches jointly forming the scale of a key
signature")
(pop-first ,boolean? "Do a revert before we try to do a override on some
grob property.")
(procedure ,procedure?
- "The function to run with \\applycontext. It must take a single
argument, being the context.")
+ "The function to run with \\applycontext.
+It must take a single argument, being the context.")
(property-operations ,list?
"Do these operations for instantiating the context.")
(predicate ,procedure? "the predicate of a \\outputproperty.")
@@ -86,9 +88,10 @@
(repeat-count ,integer? "do a @code{\repeat} how ofen?")
(span-direction ,ly:dir? "Does this start or stop a spanner?")
(split-list ,list? "splitting moments for part combiner.")
- (start-callback ,procedure? "Function to compute the negative length of
-starting grace notes.")
- (string-number ,integer? "The number of the string in a
String_number_req")
+ (start-callback ,procedure? "Function to compute the negative
+length of starting grace notes. This property can only be defined as
+initializer in @file{define-music-types.scm}.")
+ (string-number ,integer? "The number of the string in a
StringNumberEvent")
(symbol ,symbol? "Grob name to perform an override/revert on.")
(text ,markup? "markup expression to be printed")
(tremolo-type ,integer? "")
@@ -106,7 +109,7 @@
a string) for figured bass")
(alteration ,number? "alteration for figured bass")
(bracket-start ,boolean? "start a bracket
-here. TODO: use span requests?")
+here. TODO: use SpanEvents?")
(bracket-stop ,boolean? "stop a bracket here.")
(untransposable ,boolean? "If set, this music is not transposed.")
)))
Index: lilypond/scm/lily-library.scm
diff -u lilypond/scm/lily-library.scm:1.35 lilypond/scm/lily-library.scm:1.36
--- lilypond/scm/lily-library.scm:1.35 Tue May 10 21:58:45 2005
+++ lilypond/scm/lily-library.scm Wed May 25 10:22:34 2005
@@ -134,6 +134,13 @@
(let ((k (assoc (car keys) lst)))
(if k k (first-assoc (cdr keys) lst)))))
+(define-public (flatten-alist alist)
+ (if (null? alist)
+ '()
+ (cons (caar alist)
+ (cons (cdar alist)
+ (flatten-alist (cdr alist))))))
+
;;;;;;;;;;;;;;;;
;; vector
(define-public (vector-for-each proc vec)
Index: lilypond/scm/music-functions.scm
diff -u lilypond/scm/music-functions.scm:1.146
lilypond/scm/music-functions.scm:1.147
--- lilypond/scm/music-functions.scm:1.146 Mon Apr 18 21:55:16 2005
+++ lilypond/scm/music-functions.scm Wed May 25 10:22:34 2005
@@ -213,14 +213,21 @@
(define-public (unfold-repeats music)
"
This function replaces all repeats with unfold repeats. "
-
+
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element))
)
(if (memq 'repeated-music (ly:music-property music 'types))
- (begin
- (if (equal? (ly:music-property music 'iterator-ctor)
- Chord_tremolo_iterator::constructor)
+ (let*
+ ((props (ly:music-mutable-properties music))
+ (old-name (ly:music-property music 'name))
+ (flattened (flatten-alist props)))
+
+ (set! music (apply make-music (cons 'UnfoldedRepeatedMusic
+ flattened)))
+
+ (display old-name)
+ (if (equal? old-name 'TremoloRepeatedMusic)
(let* ((seq-arg? (memq 'sequential-music
(ly:music-property e 'types)))
(count (ly:music-property music 'repeat-count))
@@ -234,14 +241,9 @@
(ly:intlog2 count)) dot-shift)
(if seq-arg?
- (ly:music-compress e (ly:make-moment (length
(ly:music-property e 'elements)) 1)))))
+ (ly:music-compress e (ly:make-moment (length
(ly:music-property
+ e 'elements))
1)))))))
- (set! (ly:music-property music 'length-callback)
- Repeated_music::unfolded_music_length)
- (set! (ly:music-property music 'start-callback)
- Repeated_music::first_start)
- (set! (ly:music-property music 'iterator-ctor)
- Unfolded_repeat_iterator::constructor)))
(if (pair? es)
(set! (ly:music-property music 'elements)
_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs