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()
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_)
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";
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_)
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_);