X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftuplet-engraver.cc;h=70378670ebc28cf85e08c359e2dfdf5053e0b377;hb=61bba8a98a53e424054b26d63ead26b0696ea29d;hp=4c67c67f112f8143534c0c4f1979bdb5dc4a8a9a;hpb=7aabfb20c46e0a1de41698ddc6859ccd3a6dea85;p=lilypond.git diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 4c67c67f11..70378670eb 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2003 Han-Wen Nienhuys + (c) 1998--2004 Han-Wen Nienhuys */ @@ -20,7 +20,7 @@ class Tuplet_engraver : public Engraver { public: - TRANSLATOR_DECLARATIONS(Tuplet_engraver); + TRANSLATOR_DECLARATIONS (Tuplet_engraver); protected: Link_array time_scaled_musics_; @@ -32,7 +32,6 @@ protected: /// The spanners. Array order is synced with time_scaled_musics_ Link_array started_spanners_; - virtual void finalize (); virtual void acknowledge_grob (Grob_info); virtual bool try_music (Music*r); virtual void start_translation_timestep (); @@ -44,7 +43,7 @@ Tuplet_engraver::try_music (Music *c) { if (c->is_mus_type ("time-scaled-music")) { - Music *el = unsmob_music (c->get_mus_property ("element")); + Music *el = unsmob_music (c->get_property ("element")); if (el && !el->is_mus_type ("event-chord")) { time_scaled_musics_.push (c); @@ -65,16 +64,12 @@ Tuplet_engraver::try_music (Music *c) void Tuplet_engraver::process_acknowledged_grobs () { - SCM v = get_property ("tupletInvisible"); - if (to_boolean (v)) - return; - for (int i= 0; i < time_scaled_musics_.size (); i++) { if (i < started_spanners_.size () && started_spanners_[i]) continue; - Spanner* glep = new Spanner (get_property ("TupletBracket")); + Spanner* glep = make_spanner ("TupletBracket", time_scaled_musics_ [i]->self_scm ()); if (i >= started_spanners_.size ()) started_spanners_.push (glep); @@ -83,13 +78,12 @@ Tuplet_engraver::process_acknowledged_grobs () SCM proc = get_property ("tupletNumberFormatFunction"); - if (gh_procedure_p (proc)) + if (ly_c_procedure_p (proc)) { - SCM t = gh_apply (proc, scm_list_n (time_scaled_musics_[i]->self_scm (), SCM_UNDEFINED)); - glep->set_grob_property ("text", t); + SCM t = scm_apply_0 (proc, scm_list_n (time_scaled_musics_[i]->self_scm (), SCM_UNDEFINED)); + glep->set_property ("text", t); } - announce_grob(glep, time_scaled_musics_ [i]->self_scm()); } } @@ -98,7 +92,7 @@ Tuplet_engraver::acknowledge_grob (Grob_info i) { if (Note_column::has_interface (i.grob_)) { - for (int j =0; j (i.grob_)); } @@ -118,9 +112,11 @@ Tuplet_engraver::start_translation_timestep () { if (now.main_part_ >= span_stop_moments_[i]) { - if (started_spanners_[i]) + if (Spanner *sp = started_spanners_[i]) { - typeset_grob (started_spanners_[i]); + if (!sp->get_bound (RIGHT)) + sp->set_bound (RIGHT, sp->get_bound (LEFT)); + started_spanners_[i] =0; } @@ -138,24 +134,14 @@ Tuplet_engraver::start_translation_timestep () } } -void -Tuplet_engraver::finalize () +Tuplet_engraver::Tuplet_engraver () { - for (int i=0; i < started_spanners_.size (); i++) - { - if (started_spanners_[i]) - typeset_grob (started_spanners_[i]); - } } - - -Tuplet_engraver::Tuplet_engraver(){} - -ENTER_DESCRIPTION(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 tupletInvisible", +/* reads */ "tupletNumberFormatFunction tupletSpannerDuration", /* write */ "");