]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tie-engraver.cc
release: 1.1.69
[lilypond.git] / lily / tie-engraver.cc
index 177566d0340df7a62c2bf405733980b466dd8f35..949f67d3e7a7a9bfb87ad073dcadde9e88cbd9ec 100644 (file)
@@ -12,6 +12,7 @@
 #include "note-head.hh"
 #include "musical-request.hh"
 #include "tie.hh"
+#include "translator-group.hh"
 
 Tie_engraver::Tie_engraver()
 {
@@ -25,11 +26,26 @@ Tie_engraver::do_try_music (Music *m)
   if (Tie_req * c = dynamic_cast<Tie_req*> (m))
     {
       req_l_ = c;
+      if (get_property ("automaticMelismata",0).to_bool ())
+       {
+         set_melisma (true);
+       }
       return true;
     }
   return false;
 }
 
+void
+Tie_engraver::set_melisma (bool m)
+{
+  Translator_group *where = daddy_trans_l_;
+  get_property ("tieMelismaBusy", &where);
+  if (!where)
+    where = daddy_trans_l_;
+    
+  daddy_trans_l_->set_property ("tieMelismaBusy", m ? "1" :"0");
+}
+
 void
 Tie_engraver::acknowledge_element (Score_element_info i)
 {
@@ -64,6 +80,10 @@ Tie_engraver::process_acknowledged ()
   
   if (req_l_)
     {
+
+      /*
+       JUNKME!
+       */
       if (old_behavior)
        {
          if (now_heads_.size () != stopped_heads_.size ())
@@ -129,6 +149,12 @@ Tie_engraver::process_acknowledged ()
 
                }
            }
+
+         if (!tie_p_arr_.size ())
+           {
+             req_l_->warning (_("No ties were created!"));
+           }
+         
        }
     }
 }
@@ -142,8 +168,8 @@ Tie_engraver::do_pre_move_processing ()
     }
   now_heads_.clear ();
 
-  Scalar dir (get_property ("tieydirection", 0));
-  Scalar dir2 (get_property ("ydirection", 0));
+  Scalar dir (get_property ("tieVerticalDirection", 0));
+  Scalar dir2 (get_property ("verticalDirection", 0));
 
   Direction tie_dir = CENTER;
   if (dir.length_i () && dir.isnum_b ())
@@ -162,7 +188,11 @@ Tie_engraver::do_pre_move_processing ()
 void
 Tie_engraver::do_post_move_processing ()
 {
-  req_l_ =0;
+  if (get_property ("automaticMelismata",0).to_bool ())
+    {
+      set_melisma (false);
+    }
+  req_l_ = 0;
   Moment now = now_mom ();
   while (past_notes_pq_.size () && past_notes_pq_.front ().end_ < now)
     past_notes_pq_.delmin ();