]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.76
authorfred <fred>
Tue, 26 Mar 2002 23:25:36 +0000 (23:25 +0000)
committerfred <fred>
Tue, 26 Mar 2002 23:25:36 +0000 (23:25 +0000)
lily/beam-engraver.cc

index 5574830c37faeed33ca6735e8b6768f55d2900c3..8b404079f3c9f9f07d0bd17440a7c4ff8f471dca 100644 (file)
@@ -37,6 +37,7 @@ class Beam_engraver : public Engraver
   Moment beam_start_mom_;
   
   void typeset_beam ();
+  void set_melisma (bool);
 protected:
   virtual void do_pre_move_processing ();
   virtual void do_post_move_processing ();
@@ -75,12 +76,29 @@ Beam_engraver::do_try_music (Music *m)
          m->origin ()->warning  (_ ("can't find start of beam"));
          return false;
        }
+
+      if(d == STOP)
+       {
+         SCM m = get_property ("automaticMelismata");
+         SCM b = get_property("noAutoBeaming");
+         if (to_boolean (m) && to_boolean(b))
+           {
+             set_melisma (false);
+           }
+       }
+
       reqs_drul_[d ] = c;
       return true;
     }
   return false;
 }
 
+void
+Beam_engraver::set_melisma (bool m)
+{
+  daddy_trans_l_->set_property ("beamMelismaBusy", m ? SCM_BOOL_T :SCM_BOOL_F);
+}
+
 
 void
 Beam_engraver::do_process_music ()
@@ -160,6 +178,13 @@ void
 Beam_engraver::do_post_move_processing ()
 {
   reqs_drul_ [START] =0;
+  if(beam_p_) {
+    SCM m = get_property ("automaticMelismata");
+    SCM b = get_property("noAutoBeaming");
+    if (to_boolean (m) && to_boolean(b)) {
+      set_melisma (true);
+    }
+  }
 }
 
 void