X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbeam-engraver.cc;h=90357c5264f0929718127e52518240d3597ac580;hb=1efdfdaed5cd51abfe5da5e4f5731fe9396c96f2;hp=288a47494149b9077187d17902b224a791905be3;hpb=16cb456cabf477f6d398ff731aa0f10b60913394;p=lilypond.git diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 288a474941..90357c5264 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -46,9 +46,9 @@ protected: /// moment (global time) where beam started. Moment beam_start_mom_; - bool subdivide_beams_; - Moment beat_length_; - + Beaming_options beaming_options_; + Beaming_options finished_beaming_options_; + void typeset_beam (); void set_melisma (bool); @@ -135,13 +135,17 @@ Beam_engraver::process_music () beam_start_location_ = mp; beam_start_mom_ = now_mom (); + beaming_options_.from_context (context ()); beam_info_ = new Beaming_pattern; /* urg, must copy to Auto_beam_engraver too */ } typeset_beam (); if (stop_ev_ && beam_) - announce_end_grob (beam_, stop_ev_->self_scm ()); + { + announce_end_grob (beam_, stop_ev_->self_scm ()); + + } } void @@ -151,8 +155,8 @@ Beam_engraver::typeset_beam () { if (!finished_beam_->get_bound (RIGHT)) finished_beam_->set_bound (RIGHT, finished_beam_->get_bound (LEFT)); - - finished_beam_info_->beamify (context ()); + + finished_beam_info_->beamify (finished_beaming_options_); Beam::set_beaming (finished_beam_, finished_beam_info_); delete finished_beam_info_; @@ -179,7 +183,8 @@ Beam_engraver::stop_translation_timestep () { finished_beam_ = beam_; finished_beam_info_ = beam_info_; - + finished_beaming_options_ = beaming_options_; + stop_ev_ = 0; beam_ = 0; beam_info_ = 0; @@ -210,7 +215,7 @@ Beam_engraver::acknowledge_rest (Grob_info info) if (beam_ && !scm_is_number (info.grob ()->get_property_data ("staff-position"))) { - chain_offset_callback (info.grob(), + chain_offset_callback (info.grob (), Beam::rest_collision_callback_proc, Y_AXIS); } }