source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "rest-engraver.hh"
{
rest_p_ = new Rest;
rest_p_->balltype_i_ = rest_req_l_->duration_.durlog_i_;
- rest_p_->dots_i_ = rest_req_l_->duration_.dots_i_;
- if (rest_p_->dots_i_)
+
+ if (rest_req_l_->duration_.dots_i_)
{
dot_p_ = new Dots;
rest_p_->dots_l_ =dot_p_;
+ dot_p_->dots_i_ = rest_req_l_->duration_.dots_i_;
announce_element (Score_element_info (dot_p_,0));
}
+ if (rest_p_->balltype_i_ >= 2)
+ {
+ SCM reststyle = get_property ("restStyle", 0);
+ if (gh_string_p (reststyle))
+ rest_p_->set_elt_property (style_scm_sym,reststyle);
+ }
announce_element (Score_element_info (rest_p_, rest_req_l_));
}
}
bool
-Rest_engraver::do_try_request (Request *r)
+Rest_engraver::do_try_music (Music *req)
{
- Musical_req *m = r->access_Musical_req ();
- if (!m || !m->access_Rest_req ())
- return false;
-
- rest_req_l_ = m->access_Rest_req (); // ugh
- return true;
+ if (Rest_req *r = dynamic_cast <Rest_req *> (req))
+ {
+ rest_req_l_ = r;
+ return true;
+ }
+ return false;
}
-IMPLEMENT_IS_TYPE_B1(Rest_engraver, Engraver);
+
ADD_THIS_TRANSLATOR(Rest_engraver);