X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fstem-engraver.cc;h=797406b4fbc062d28aa0cc9af6f152d3435073ce;hb=7e0dab27123da5d52b90c81f70ac10669a34d45a;hp=e81771eda101178dae3bdb2252f4d3d603443af1;hpb=91821bd59959b1289f2d711509017a4dacebecd2;p=lilypond.git diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc index e81771eda1..797406b4fb 100644 --- a/lily/stem-engraver.cc +++ b/lily/stem-engraver.cc @@ -3,12 +3,15 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ +#include "engraver.hh" + #include "context.hh" #include "directional-element-interface.hh" -#include "engraver.hh" +#include "duration.hh" +#include "international.hh" #include "item.hh" #include "misc.hh" #include "rhythmic-head.hh" @@ -16,7 +19,6 @@ #include "staff-symbol-referencer.hh" #include "stem-tremolo.hh" #include "stem.hh" -#include "duration.hh" /** Make stems upon receiving noteheads. @@ -51,7 +53,7 @@ Stem_engraver::make_stem (Grob_info gi) { /* Announce the cause of the head as cause of the stem. The stem needs a rhythmic structure to fit it into a beam. */ - stem_ = make_item ("Stem", gi.music_cause ()->self_scm ()); + stem_ = make_item ("Stem", gi.grob ()->self_scm ()); /* we take the duration log from the Event, since the duration-log @@ -59,7 +61,7 @@ Stem_engraver::make_stem (Grob_info gi) */ Music *music = gi.music_cause (); Duration *dur = unsmob_duration (music->get_property ("duration")); - + stem_->set_property ("duration-log", dur ? scm_from_int (dur->duration_log ()) : 0); if (tremolo_ev_) @@ -117,11 +119,11 @@ Stem_engraver::acknowledge_rhythmic_head (Grob_info gi) return; Duration *d = unsmob_duration (cause->get_property ("duration")); if (!d) - return ; - + return; + if (!stem_) make_stem (gi); - + if (Stem::duration_log (stem_) != d->duration_log ()) { // FIXME: @@ -169,11 +171,18 @@ Stem_engraver::try_music (Music *m) } #include "translator.icc" -ADD_ACKNOWLEDGER (Stem_engraver,rhythmic_head); + +ADD_ACKNOWLEDGER (Stem_engraver, rhythmic_head); + ADD_TRANSLATOR (Stem_engraver, /* doc */ "Create stems and single-stem tremolos. It also works together with " "the beam engraver for overriding beaming.", - /* create */ "Stem StemTremolo", + /* create */ + "Stem " + "StemTremolo ", /* accept */ "tremolo-event", - /* read */ "tremoloFlags stemLeftBeamCount stemRightBeamCount", + /* read */ + "tremoloFlags " + "stemLeftBeamCount " + "stemRightBeamCount ", /* write */ "");