]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/plet-engraver.cc
release: 1.1.15
[lilypond.git] / lily / plet-engraver.cc
index 8da468ec92d2d13b0373c113d8b5b3a105a2aaaf..ff855674b563b46d37457aefe58c94bb78c2ec8b 100644 (file)
@@ -1,3 +1,4 @@
+#if 0
 /*
   plet-engraver.cc -- implement Plet_engraver
 
@@ -13,7 +14,7 @@
 #include "score-column.hh"
 #include "stem.hh"
 
-IMPLEMENT_IS_TYPE_B1 (Plet_engraver,Engraver);
+
 ADD_THIS_TRANSLATOR (Plet_engraver);
 
 Plet_engraver::Plet_engraver ()
@@ -27,7 +28,9 @@ Plet_engraver::Plet_engraver ()
 void
 Plet_engraver::acknowledge_element (Score_element_info i)
 {
-  if (!i.elem_l_->is_type_b (Stem::static_name ()))
+
+  Stem * st = (dynamic_cast<Stem *> (i.elem_l_));
+  if (!st)
     return;
   if (!plet_spanner_p_)
     return;
@@ -35,43 +38,39 @@ Plet_engraver::acknowledge_element (Score_element_info i)
     return;
 
   if (!plet_spanner_p_->stem_l_drul_[LEFT])
-    plet_spanner_p_->set_stem (LEFT, (Stem*)i.elem_l_->access_Item ());
+    plet_spanner_p_->set_stem (LEFT, st);
   else
     if (span_reqs_drul_[RIGHT] && !plet_spanner_p_->stem_l_drul_[RIGHT]) 
-      plet_spanner_p_->set_stem (RIGHT, (Stem*)i.elem_l_->access_Item ());
+      plet_spanner_p_->set_stem (RIGHT, st);
 }
 
 bool
-Plet_engraver::do_try_request (Request* req_l)
+Plet_engraver::do_try_music (Music* req_l)
 {
-  Musical_req* mus_l = req_l->access_Musical_req ();
-  if (!mus_l)
-    return false;
-
   /*
     UGH! This is incorrect!
     Beam_req might not reach the Plet_engraver if ordering is wrong!
    */
-  Beam_req* b = mus_l->access_Beam_req ();
+  Beam_req* b = dynamic_cast <Beam_req *> (req_l);
   if (b)
     {
-      if (b->spantype)
+      if (b->spantype_)
         {
-          Direction d = (Direction)(((int)(b->spantype - 1)) * 2 - 1);
+          Direction d = (Direction)(((int)(b->spantype_ - 1)) * 2 - 1);
           beam_mom_drul_[d] = get_staff_info ().musical_l ()->when ();
        }
       return false;
     }
     
-  Plet_req* p = mus_l->access_Plet_req ();
+  Plet_req* p = dynamic_cast <Plet_req *> (req_l);
   if (!p)
     return false;
 
-  if (bool (plet_spanner_p_) == bool (p->spantype == Span_req::START))
+  if (bool (plet_spanner_p_) == bool (p->spantype_ == START))
     return false;
 
   Direction d = (!plet_spanner_p_) ? LEFT : RIGHT;
-  if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (mus_l))
+  if (span_reqs_drul_[d] && !span_reqs_drul_[d]->equal_b (p))
     return false;
 
   span_reqs_drul_[d] = p;
@@ -130,3 +129,4 @@ Plet_engraver::do_pre_move_processing ()
   span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
 }
 
+#endif