X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fbeam-engraver.cc;h=122a7ecd3c28369f0c11b928870709d74f9827ea;hb=54404c570a48ddf9772c5ca64a154d0c0149e61e;hp=824cf0344e36a8384926c9e1de4f3c0b4abbe59c;hpb=94189ec2b8da6d7e89dc619c646a927adead9b19;p=lilypond.git diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 824cf0344e..122a7ecd3c 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -69,7 +69,7 @@ Beam_engraver::Beam_engraver () bool Beam_engraver::try_music (Music *m) { - if (Span_req * c = dynamic_cast(m)) + if (Span_req * c = dynamic_cast (m)) { if (scm_equal_p (c->get_mus_property ("span-type"), ly_str02scm ("abort")) == SCM_BOOL_T) @@ -88,15 +88,15 @@ Beam_engraver::try_music (Music *m) if (d == STOP && !beam_p_) { - m->origin ()->warning (_ ("can't find start of beam")); + m->origin ()->warning (_ ("can't find start of beam")); return false; } - if(d == STOP) + if (d == STOP) { SCM m = get_property ("automaticMelismata"); - SCM b = get_property("noAutoBeaming"); - if (to_boolean (m) && to_boolean(b)) + SCM b = get_property ("noAutoBeaming"); + if (to_boolean (m) && to_boolean (b)) { set_melisma (false); } @@ -121,7 +121,7 @@ Beam_engraver::process_music () if (reqs_drul_[STOP]) { if (!beam_p_) - reqs_drul_[STOP]->origin ()->warning (_("can't find start of beam")); + reqs_drul_[STOP]->origin ()->warning (_ ("can't find start of beam")); prev_start_req_ =0; finished_beam_p_ = beam_p_; finished_beam_info_p_ = beam_info_p_; @@ -131,7 +131,7 @@ Beam_engraver::process_music () } - if (beam_p_ && !to_boolean (get_property ("weAreGraceContext"))) + if (beam_p_) { Score_engraver * e = 0; Translator * t = daddy_grav_l (); @@ -162,12 +162,12 @@ Beam_engraver::create_grobs () prev_start_req_ = reqs_drul_[START]; beam_p_ = new Spanner (get_property ("Beam")); SCM smp = get_property ("measurePosition"); - Moment mp = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0); + Moment mp = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0); beam_start_location_ = mp; - beam_start_mom_ = now_mom(); - beam_info_p_ = new Beaming_info_list; + beam_start_mom_ = now_mom (); + beam_info_p_ = new Beaming_info_list; /* urg, must copy to Auto_beam_engraver too */ @@ -198,10 +198,10 @@ void Beam_engraver::start_translation_timestep () { reqs_drul_ [START] =0; - if(beam_p_) { + if (beam_p_) { SCM m = get_property ("automaticMelismata"); - SCM b = get_property("noAutoBeaming"); - if (to_boolean (m) && to_boolean(b)) { + SCM b = get_property ("noAutoBeaming"); + if (to_boolean (m) && to_boolean (b)) { set_melisma (true); } } @@ -220,14 +220,12 @@ Beam_engraver::finalize () if (beam_p_) { prev_start_req_->origin ()->warning (_ ("unterminated beam")); -#if 0 - finished_beam_p_ = beam_p_; - finished_beam_info_p_ = beam_info_p_; - typeset_beam (); -#else + + /* + we don't typeset it, (we used to, but it was commented + out. Reason unknown) */ beam_p_->suicide (); delete beam_info_p_; -#endif } } @@ -242,18 +240,15 @@ Beam_engraver::acknowledge_grob (Grob_info info) } else if (Stem::has_interface (info.elem_l_)) { + Moment now = now_mom(); + + if(bool (now.grace_part_ ) != bool (beam_start_mom_.grace_part_)) + return ; + Item *stem_l = dynamic_cast (info.elem_l_); if (Stem::beam_l (stem_l)) return; - bool stem_grace = stem_l->get_grob_property ("grace") == SCM_BOOL_T; - - SCM wg =get_property ("weAreGraceContext"); - bool wgb= to_boolean (wg); - - if (wgb!= stem_grace) - return; - Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_); if (!rhythmic_req) { @@ -280,9 +275,9 @@ Beam_engraver::acknowledge_grob (Grob_info info) stem_l->set_grob_property ("duration-log", gh_int2scm (durlog)); - Moment stem_location = now_mom () - beam_start_mom_ + beam_start_location_; + Moment stem_location = now - beam_start_mom_ + beam_start_location_; beam_info_p_->add_stem (stem_location, - (durlog- 2) >? 1); + (durlog- 2) >? 1); Beam::add_stem (beam_p_, stem_l); } } @@ -290,5 +285,5 @@ Beam_engraver::acknowledge_grob (Grob_info info) -ADD_THIS_TRANSLATOR(Beam_engraver); +ADD_THIS_TRANSLATOR (Beam_engraver);