X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fchord-tremolo-engraver.cc;h=9e48a1a4908d5a21bf0c0e59a9242483979f4dd3;hb=a6a51abfd0195a3cf7d6ea095cf69808852f21ce;hp=f0ac33d25ab0f134a62e1ff0042bc04e35981170;hpb=1886ed3be6b7b47ce2ede9e1cbbbea9d43bbc518;p=lilypond.git diff --git a/lily/chord-tremolo-engraver.cc b/lily/chord-tremolo-engraver.cc index f0ac33d25a..9e48a1a490 100644 --- a/lily/chord-tremolo-engraver.cc +++ b/lily/chord-tremolo-engraver.cc @@ -1,8 +1,8 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2000--2010 Han-Wen Nienhuys - Erik Sandberg + Copyright (C) 2000--2015 Han-Wen Nienhuys + Erik Sandberg LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -62,18 +62,18 @@ protected: protected: virtual void finalize (); void process_music (); - DECLARE_TRANSLATOR_LISTENER (tremolo_span); - DECLARE_ACKNOWLEDGER (stem); + void listen_tremolo_span (Stream_event *); + void acknowledge_stem (Grob_info); }; -Chord_tremolo_engraver::Chord_tremolo_engraver () +Chord_tremolo_engraver::Chord_tremolo_engraver (Context *c) + : Engraver (c) { beam_ = 0; repeat_ = 0; previous_stem_ = 0; } -IMPLEMENT_TRANSLATOR_LISTENER (Chord_tremolo_engraver, tremolo_span); void Chord_tremolo_engraver::listen_tremolo_span (Stream_event *ev) { @@ -142,34 +142,39 @@ Chord_tremolo_engraver::acknowledge_stem (Grob_info info) if (Stem::duration_log (s) != 1) beam_->set_property ("gap-count", scm_from_int (gap_count)); - if (info.ultimate_event_cause ()->in_event_class ("rhythmic-event")) - Beam::add_stem (beam_, s); + Beam::add_stem (beam_, s); else - { - string s = _ ("stem must have Rhythmic structure"); - if (info.event_cause ()) - info.event_cause ()->origin ()->warning (s); - else - ::warning (s); - } + { + string s = _ ("stem must have Rhythmic structure"); + if (info.event_cause ()) + info.event_cause ()->origin ()->warning (s); + else + ::warning (s); + } // Store current grob, so we can possibly end the spanner here (and // reset the beam direction to RIGHT) previous_stem_ = s; } } -ADD_ACKNOWLEDGER (Chord_tremolo_engraver, stem); +void +Chord_tremolo_engraver::boot () +{ + ADD_LISTENER (Chord_tremolo_engraver, tremolo_span); + ADD_ACKNOWLEDGER (Chord_tremolo_engraver, stem); +} + ADD_TRANSLATOR (Chord_tremolo_engraver, - /* doc */ - "Generate beams for tremolo repeats.", + /* doc */ + "Generate beams for tremolo repeats.", - /* create */ - "Beam ", + /* create */ + "Beam ", - /* read */ - "", + /* read */ + "", - /* write */ - "" - ); + /* write */ + "" + );