/*
- new-chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver
+ new-chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver
- source file of the GNU LilyPond music typesetter
+ source file of the GNU LilyPond music typesetter
- (c) 2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- */
+*/
#include "engraver.hh"
#include "beam.hh"
/**
- This acknowledges repeated music with "tremolo" style. It typesets
- a beam.
+This acknowledges repeated music with "tremolo" style. It typesets
+a beam.
- TODO:
+TODO:
- - perhaps use engraver this to steer other engravers? That would
- create dependencies between engravers, which is bad.
+- perhaps use engraver this to steer other engravers? That would
+create dependencies between engravers, which is bad.
- - create dots if appropriate.
+- create dots if appropriate.
- - create TremoloBeam iso Beam?
+- create TremoloBeam iso Beam?
*/
class Chord_tremolo_engraver : public Engraver
beam_ = make_spanner ("Beam", repeat_->self_scm ());
beam_->set_property ("chord-tremolo", SCM_BOOL_T);
- SCM smp = get_property ("measurePosition");
- Moment mp
- = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
- beam_start_location_ = mp;
+ beam_start_location_ = robust_scm2moment (get_property ("measurePosition"), Moment (0));
}
}
void
Chord_tremolo_engraver::typeset_beam ()
{
- if (finished_beam_)
- {
- typeset_grob (finished_beam_);
- finished_beam_ = 0;
- }
+ finished_beam_ = 0;
}
void
void
Chord_tremolo_engraver::stop_translation_timestep ()
{
- typeset_beam ();
-
if (stem_tremolo_)
{
- typeset_grob (stem_tremolo_);
+ repeat_ = 0;
+ if (beam_)
+ programming_error ("Huh, beam and stem tremolo?");
stem_tremolo_ = 0;
}
+
+ typeset_beam ();
}