X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftuplet-engraver.cc;h=7bec0b218e4632597fd2874ceb00ddeba5275821;hb=a7f82e4dc22fc6219a9fe0f6874f8c91e3f31f24;hp=f2838a32c46d2383491d1e7b053aafa8b1a2bdaa;hpb=7b73cd6f07c7a772f3d651a04c74cbd6e1e211c7;p=lilypond.git diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index f2838a32c4..7bec0b218e 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -1,27 +1,26 @@ -/* - tuplet-engraver.cc -- implement Tuplet_engraver - +/* + tuplet-engraver.cc -- implement Tuplet_engraver + source file of the GNU LilyPond music typesetter - - (c) 1998--2004 Han-Wen Nienhuys - - */ + + (c) 1998--2005 Han-Wen Nienhuys +*/ #include "tuplet-bracket.hh" #include "note-column.hh" -#include "time-scaled-music.hh" #include "beam.hh" -#include "music-list.hh" #include "engraver.hh" #include "spanner.hh" +#include "translator.icc" + struct Tuplet_description { Music *music_; Rational stop_; Rational span_stop_; Spanner *spanner_; - Tuplet_description() + Tuplet_description () { music_ = 0; spanner_ = 0; @@ -37,9 +36,9 @@ protected: Array tuplets_; virtual void acknowledge_grob (Grob_info); - virtual bool try_music (Music*r); - virtual void start_translation_timestep (); - virtual void process_music (); + virtual bool try_music (Music *r); + PRECOMPUTED_VIRTUAL void start_translation_timestep (); + PRECOMPUTED_VIRTUAL void process_music (); }; bool @@ -52,13 +51,13 @@ Tuplet_engraver::try_music (Music *music) { Tuplet_description d; d.music_ = music; - d.stop_ = now_mom ().main_part_ + music->get_length ().main_part_; + d.stop_ = now_mom ().main_part_ + music->get_length ().main_part_; d.span_stop_ = d.stop_; - + SCM s = get_property ("tupletSpannerDuration"); if (unsmob_moment (s)) - d.span_stop_ = d.span_stop_ self_scm ()); tuplets_[i].spanner_ = spanner; SCM proc = get_property ("tupletNumberFormatFunction"); - if (ly_c_procedure_p (proc)) + if (ly_is_procedure (proc)) { SCM t = scm_apply_0 (proc, scm_list_1 (tuplets_[i].music_->self_scm ())); spanner->set_property ("text", t); @@ -90,12 +89,12 @@ Tuplet_engraver::process_music () void Tuplet_engraver::acknowledge_grob (Grob_info i) { - if (Note_column::has_interface (i.grob_)) + if (Note_column::has_interface (i.grob ())) { - for (int j =0; j < tuplets_.size (); j++) - if (tuplets_[j].spanner_) + for (int j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].spanner_) Tuplet_bracket::add_column (tuplets_[j].spanner_, - dynamic_cast (i.grob_)); + dynamic_cast (i.grob ())); } } @@ -117,10 +116,10 @@ Tuplet_engraver::start_translation_timestep () { if (!sp->get_bound (RIGHT)) sp->set_bound (RIGHT, sp->get_bound (LEFT)); - + tuplets_[i].spanner_ = 0; } - + if (tsd.to_bool ()) tuplets_[i].span_stop_ += tsd.main_part_; } @@ -136,10 +135,10 @@ Tuplet_engraver::Tuplet_engraver () { } -ENTER_DESCRIPTION (Tuplet_engraver, -/* descr */ "Catch Time_scaled_music and generate appropriate bracket ", -/* creats*/ "TupletBracket", -/* accepts */ "time-scaled-music", -/* acks */ "note-column-interface", -/* reads */ "tupletNumberFormatFunction tupletSpannerDuration", -/* write */ ""); +ADD_TRANSLATOR (Tuplet_engraver, + /* descr */ "Catch Time_scaled_music and generate appropriate bracket ", + /* creats*/ "TupletBracket", + /* accepts */ "time-scaled-music", + /* acks */ "note-column-interface", + /* reads */ "tupletNumberFormatFunction tupletSpannerDuration", + /* write */ "");