]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/melisma-engraver.cc (try_music): use melismaBusyProperties.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 17 Sep 2003 22:01:23 +0000 (22:01 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 17 Sep 2003 22:01:23 +0000 (22:01 +0000)
* scm/define-translator-properties.scm (melismaBusyProperties):
add melismaBusyProperties property.

ChangeLog
lily/melisma-engraver.cc
ly/engraver-init.ly
scm/define-translator-properties.scm

index 3e74c3cca6cbe82247e011c8b33d346589ba85b1..8925ecbfef72577bb38f53e840a311ebf5a0cd86 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-09-18  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * lily/melisma-engraver.cc (try_music): use melismaBusyProperties.
+
+       * scm/define-translator-properties.scm (melismaBusyProperties):
+       add melismaBusyProperties property.
+
 2003-09-17  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
        * input/test/ambitus-mixed.ly (texidoc): new file.
index adc6d218fdcb53e7432d3e304ed4e4a4f7fd9deb..554d3c78dacf65eeb662eb77057dfce2dff68131 100644 (file)
@@ -23,33 +23,21 @@ public:
 };
 
 
-/*
-  HUH ?
-
-  how's this supposed to work?
- */
 bool
 Melisma_engraver::try_music (Music *m) 
 {
-  SCM plain (get_property ("melismaBusy"));
-  SCM slur (get_property ("slurMelismaBusy"));
-  SCM tie (get_property ("tieMelismaBusy"));
-  SCM beam (get_property ("beamMelismaBusy"));
-      
-  if ((to_boolean (plain))
-      || (to_boolean (slur))
-      || (to_boolean (tie))
-      || (to_boolean (beam)))
-    {
-
-      daddy_trans_->set_property ("melismaEngraverBusy",SCM_BOOL_T);
-      return true;
-    }
-  else
-    {
-      daddy_trans_->set_property ("melismaEngraverBusy",SCM_BOOL_F);
-      return false;
-    }
+  SCM melisma_properties = get_property ("melismaBusyProperties");
+  bool busy = false;
+
+  for (; gh_pair_p (melisma_properties);
+       melisma_properties = gh_cdr (melisma_properties))
+      busy = busy || to_boolean (get_property (gh_car (melisma_properties)));
+
+  /*
+    for the phrasing engraver we also need this.
+   */
+  daddy_trans_->set_property ("melismaEngraverBusy",gh_bool2scm (busy));
+  return busy;
 }
 
 Melisma_engraver::Melisma_engraver()
@@ -61,5 +49,5 @@ ENTER_DESCRIPTION(Melisma_engraver,
 /* creats*/       "",
 /* accepts */     "melisma-playing-event",
 /* acks  */      "",
-/* reads */       "melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy",
+/* reads */       "melismaBusy melismaBusyProperties slurMelismaBusy tieMelismaBusy beamMelismaBusy",
 /* write */       "melismaEngraverBusy");
index be3dda204cc69df90ae726e82cc102a6e4861055..064df8a77c06e68fd909a13478297d99916d9757 100644 (file)
@@ -437,7 +437,8 @@ ScoreContext = \translator {
        changeMoment = #`(,(ly:make-moment 0 0) . ,(ly:make-moment 1 512))
        systemStartDelimiter =#'SystemStartBar
 
-
+       melismaBusyProperties = #'(melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy)
+       
        clefGlyph = #"clefs-G"
        clefPosition = #-2
        centralCPosition = #-6
index f343076f0b9ab8fc7c2bcaa5af0f4b640ef6d68e..16203d0ef2b7414477fb19d790854581147e5e99 100644 (file)
@@ -316,6 +316,9 @@ the start of the music.
 (translator-property-description 'melismaBusy boolean? "Signifies
 whether a melisma is active. This can be used to signal melismas on
 top of those automatically detected. ")
+(translator-property-description 'melismaBusyProperties list?
+                                "List of  properties (symbols) to
+determine whether a melisma  is playing.")
 (translator-property-description 'melismaEngraverBusy boolean? "See melismaBusy. This is set automatically.")
 (translator-property-description 'metronomeMarkFormatter procedure?
                                 "How to produce a metronome markup.