]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/dynamic-engraver.cc
release: 1.1.1
[lilypond.git] / lily / dynamic-engraver.cc
index 2b38c4c08eec52421e1b5bd141a116d7773d0ff4..e0f26807487d36ddc06652a90fcc0090db49bf82 100644 (file)
@@ -34,24 +34,16 @@ Dynamic_engraver::do_post_move_processing()
 bool
 Dynamic_engraver::do_try_request (Request * r)
 {
-  Musical_req * m = dynamic_cast <Musical_req *> (r);
-  if (!m)
-    return false;
-  Dynamic_req * d = dynamic_cast <Dynamic_req *> (m);
-  if (!d)
-    return false;
-
-#if 0
-  if (cresc_p_ && dynamic_cast <Span_dynamic_req *> (d)
-      && dynamic_cast <Span_dynamic_req *> (d)->spantype == Span_req::START)
-    return false;
-#endif
-  for (int i=0; i < dynamic_req_l_arr_.size (); i++)
-    if (d->equal_b (dynamic_req_l_arr_[i]))
+  if(Dynamic_req * d = dynamic_cast <Dynamic_req *> (r))
+    {
+      for (int i=0; i < dynamic_req_l_arr_.size (); i++)
+       if (d->equal_b (dynamic_req_l_arr_[i]))
+         return true;
+      
+      dynamic_req_l_arr_.push (d);
       return true;
-
-  dynamic_req_l_arr_.push (dynamic_cast <Dynamic_req *> (m));
-  return true;
+    }
+  return false;
 }
 void
 Dynamic_engraver::do_process_requests()
@@ -60,7 +52,7 @@ Dynamic_engraver::do_process_requests()
   for (int i=0; i < dynamic_req_l_arr_.size(); i++)
     {
       Dynamic_req *dreq_l = dynamic_req_l_arr_[i];
-      if (dynamic_cast <Absolute_dynamic_req *> (dreq_l))
+      if (Absolute_dynamic_req *absd = dynamic_cast<Absolute_dynamic_req *> (dreq_l))
        {
 
          if (dynamic_p_)
@@ -71,8 +63,8 @@ Dynamic_engraver::do_process_requests()
          
          Text_def * td_p = new Text_def;
          td_p->align_dir_ = CENTER;
-         String loud = dynamic_cast <Absolute_dynamic_req *> (dreq_l)->loudness_str ();
-         td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_;
+         String loud = absd->loudness_str ();
+         td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_; // ugh
          td_p->style_str_ = "dynamic";
 
          
@@ -80,9 +72,8 @@ Dynamic_engraver::do_process_requests()
          dynamic_p_ = new Text_item (td_p);
          announce_element (Score_element_info (dynamic_p_, dreq_l));
        }
-      else if (dynamic_cast <Span_dynamic_req *> (dreq_l))
+      else if (Span_dynamic_req *span_l = dynamic_cast <Span_dynamic_req *> (dreq_l))
        {
-         Span_dynamic_req* span_l = dynamic_cast <Span_dynamic_req *> (dreq_l);
          if (span_l->spantype == Span_req::STOP)
            {
              if (!cresc_p_)
@@ -188,7 +179,7 @@ Dynamic_engraver::do_removal_processing ()
 void
 Dynamic_engraver::acknowledge_element (Score_element_info i)
 {
-  if (i.elem_l_->is_type_b (Note_column::static_name ()))
+  if (dynamic_cast<Note_column *> (i.elem_l_))
     {
       if (dynamic_p_)
        dynamic_p_->add_support (i.elem_l_);