X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=blobdiff_plain;f=lily%2Fslur-engraver.cc;h=b97a0de7b7b617627c88985a41865bebdd8c4080;hb=eabde958a9a4559f474d2736e298bfda9920c4e0;hp=d2464fc5a74198c5429890eab50a20c8d046c492;hpb=9da7ee60087c4f2e93936b061aac4fb4cbf3492d;p=lilypond.git diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index d2464fc5a7..b97a0de7b7 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -10,6 +10,7 @@ #include "slur.hh" #include "debug.hh" #include "note-column.hh" +#include "translator-group.hh" bool Slur_engraver::do_try_music (Music *req_l) @@ -19,11 +20,23 @@ Slur_engraver::do_try_music (Music *req_l) if (sl->span_type_str_ != "slur") return false; new_slur_req_l_arr_.push (sl); + return true; } return false; } +void +Slur_engraver::set_melisma (bool m) +{ + Translator_group *where = daddy_trans_l_; + get_property ("melismaBusy", &where); + if (!where) + where = daddy_trans_l_; + + daddy_trans_l_->set_property ("melismaBusy", m ? "1" :"0"); +} + void Slur_engraver::acknowledge_element (Score_element_info info) { @@ -76,7 +89,7 @@ Slur_engraver::do_process_requests() // push a new slur onto stack. //(use temp. array to wait for all slur STOPs) Slur * s_p =new Slur; - Scalar prop = get_property ("slurdash", 0); + Scalar prop = get_property ("slurDash", 0); if (prop.isnum_b ()) s_p->set_elt_property (dashed_scm_sym, gh_int2scm(prop)); @@ -113,6 +126,10 @@ void Slur_engraver::do_post_move_processing() { new_slur_req_l_arr_.clear(); + if (get_property ("automaticMelismas",0).to_bool ()) + { + set_melisma (slur_l_stack_.size ()); + } }