X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstem-engraver.cc;h=69d47c70acb659f4ae58a05369334f9df50a8783;hb=6b93aa32e32d736202d803c68f5156cc253a5f7c;hp=f6330fe102ae37e61b66fec4f9305433cdf57c53;hpb=243db47a88df9240a66bde37356b43aaeb41260d;p=lilypond.git diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index f6330fe102..69d47c70ac 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2003 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ #include "staff-symbol-referencer.hh" @@ -13,7 +13,8 @@ #include "misc.hh" #include "stem-tremolo.hh" #include "item.hh" -#include "translator-group.hh" +#include "context.hh" + #include "engraver.hh" @@ -23,7 +24,7 @@ */ class Stem_engraver : public Engraver { - TRANSLATOR_DECLARATIONS(Stem_engraver); + TRANSLATOR_DECLARATIONS (Stem_engraver); protected: virtual void acknowledge_grob (Grob_info); virtual void stop_translation_timestep (); @@ -60,13 +61,13 @@ Stem_engraver::acknowledge_grob (Grob_info i) Music * m = i.music_cause (); if (m->is_mus_type ("rhythmic-event")) - duration_log = unsmob_duration (m->get_mus_property ("duration"))-> duration_log (); + duration_log = unsmob_duration (m->get_property ("duration"))-> duration_log (); if (!stem_) { stem_ = make_item ("Stem"); - stem_->set_grob_property ("duration-log", gh_int2scm (duration_log)); + stem_->set_property ("duration-log", gh_int2scm (duration_log)); if (tremolo_ev_) { @@ -79,45 +80,45 @@ Stem_engraver::acknowledge_grob (Grob_info i) the first and last (quarter) note bothe get one tremolo flag. */ - int evuested_type = gh_scm2int (tremolo_ev_->get_mus_property ("tremolo-type")); + int requested_type = gh_scm2int (tremolo_ev_->get_property ("tremolo-type")); SCM f = get_property ("tremoloFlags"); - if (!evuested_type) + if (!requested_type) if (gh_number_p (f)) - evuested_type = gh_scm2int (f); + requested_type = gh_scm2int (f); else - evuested_type = 8; + requested_type = 8; else - daddy_trans_->set_property ("tremoloFlags", gh_int2scm (evuested_type)); + daddy_context_->set_property ("tremoloFlags", gh_int2scm (requested_type)); - int tremolo_flags = intlog2 (evuested_type) - 2 + int tremolo_flags = intlog2 (requested_type) - 2 - (duration_log > 2 ? duration_log - 2 : 0); if (tremolo_flags <= 0) { - tremolo_ev_->origin()->warning (_("tremolo duration is too long")); + tremolo_ev_->origin ()->warning (_("tremolo duration is too long")); tremolo_flags = 0; } if (tremolo_flags) { tremolo_ = make_item ("StemTremolo"); - announce_grob(tremolo_, tremolo_ev_->self_scm()); + announce_grob (tremolo_, tremolo_ev_->self_scm ()); /* The number of tremolo flags is the number of flags of the tremolo-type minus the number of flags of the note itself. */ - tremolo_->set_grob_property ("flag-count", + tremolo_->set_property ("flag-count", gh_int2scm (tremolo_flags)); tremolo_->set_parent (stem_, X_AXIS); - stem_->set_grob_property ("tremolo-flag", tremolo_->self_scm ()); + stem_->set_property ("tremolo-flag", tremolo_->self_scm ()); } } /* We announce the cause of the head as cause of the stem. The stem needs a rhythmic structure to fit it into a beam. */ - announce_grob(stem_, i.music_cause ()->self_scm()); + announce_grob (stem_, i.music_cause ()->self_scm ()); } if (Stem::duration_log (stem_) != duration_log) @@ -143,17 +144,20 @@ Stem_engraver::stop_translation_timestep () if (stem_) { + /* + toDO: junk these properties. + */ SCM prop = get_property ("stemLeftBeamCount"); if (gh_number_p (prop)) { Stem::set_beaming (stem_,gh_scm2int (prop),LEFT); - daddy_trans_->unset_property (ly_symbol2scm ("stemLeftBeamCount")); + daddy_context_->unset_property (ly_symbol2scm ("stemLeftBeamCount")); } prop = get_property ("stemRightBeamCount"); if (gh_number_p (prop)) { Stem::set_beaming (stem_,gh_scm2int (prop), RIGHT); - daddy_trans_->unset_property (ly_symbol2scm ("stemRightBeamCount")); + daddy_context_->unset_property (ly_symbol2scm ("stemRightBeamCount")); } typeset_grob (stem_); @@ -175,7 +179,7 @@ Stem_engraver::try_music (Music* r) return false; } -ENTER_DESCRIPTION(Stem_engraver, +ENTER_DESCRIPTION (Stem_engraver, /* descr */ "Create stems and single-stem tremolos. It also works together with " "the beam engraver for overriding beaming.", /* creats*/ "Stem StemTremolo",