From: Han-Wen Nienhuys Date: Sat, 23 Jul 2005 11:00:00 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release/2.7.3~14 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c7a23c5c727ce283c5a2e9fc44382d22c7728905;p=lilypond.git *** empty log message *** --- diff --git a/lily/pitch-squash-engraver.cc b/lily/pitch-squash-engraver.cc index 066c743d7c..fa00090e9b 100644 --- a/lily/pitch-squash-engraver.cc +++ b/lily/pitch-squash-engraver.cc @@ -14,15 +14,14 @@ class Pitch_squash_engraver : public Engraver { public: TRANSLATOR_DECLARATIONS (Pitch_squash_engraver); - virtual void acknowledge_grob (Grob_info); + DECLARE_ACKNOWLEDGER(note_head); }; void -Pitch_squash_engraver::acknowledge_grob (Grob_info i) +Pitch_squash_engraver::acknowledge_note_head (Grob_info i) { SCM newpos = get_property ("squashedPosition"); - if (scm_is_number (newpos) - && Note_head::has_interface (i.grob ())) + if (scm_is_number (newpos)) { i.grob ()->set_property ("staff-position", newpos); } @@ -33,7 +32,7 @@ Pitch_squash_engraver::Pitch_squash_engraver () } #include "translator.icc" - +ADD_ACKNOWLEDGER(Pitch_squash_engraver,note_head); ADD_TRANSLATOR (Pitch_squash_engraver, /* descr */ "Set the vertical position of noteheads to " @@ -44,6 +43,6 @@ ADD_TRANSLATOR (Pitch_squash_engraver, /* creats*/ "", /* accepts */ "", - /* acks */ "note-head-interface", + /* acks */ "", /* reads */ "squashedPosition", /* write */ ""); diff --git a/lily/rest-collision-engraver.cc b/lily/rest-collision-engraver.cc index 1f8c1c4555..eca0414667 100644 --- a/lily/rest-collision-engraver.cc +++ b/lily/rest-collision-engraver.cc @@ -17,7 +17,7 @@ class Rest_collision_engraver : public Engraver int rest_count_; Link_array note_columns_; protected: - virtual void acknowledge_grob (Grob_info); + DECLARE_ACKNOWLEDGER(note_column); PRECOMPUTED_VIRTUAL void process_acknowledged (); PRECOMPUTED_VIRTUAL void stop_translation_timestep (); public: @@ -47,14 +47,11 @@ Rest_collision_engraver::process_acknowledged () } void -Rest_collision_engraver::acknowledge_grob (Grob_info i) +Rest_collision_engraver::acknowledge_note_column (Grob_info i) { - if (Note_column::has_interface (i.grob ())) - { - note_columns_.push (i.grob ()); - if (Note_column::has_rests (i.grob ())) - rest_count_++; - } + note_columns_.push (i.grob ()); + if (Note_column::has_rests (i.grob ())) + rest_count_++; } void @@ -67,10 +64,11 @@ Rest_collision_engraver::stop_translation_timestep () #include "translator.icc" +ADD_ACKNOWLEDGER(Rest_collision_engraver, note_column); ADD_TRANSLATOR (Rest_collision_engraver, /* descr */ "Handles collisions of rests.", /* creats*/ "RestCollision", /* accepts */ "", - /* acks */ "note-column-interface", + /* acks */ "", /* reads */ "", /* write */ ""); diff --git a/lily/staff-symbol-engraver.cc b/lily/staff-symbol-engraver.cc index 0b5cb6640d..8ec2e655c5 100644 --- a/lily/staff-symbol-engraver.cc +++ b/lily/staff-symbol-engraver.cc @@ -93,10 +93,12 @@ Staff_symbol_engraver::finalize () stop_spanner (); } +/* + Todo: staff-symbol-referencer iface. + */ void Staff_symbol_engraver::acknowledge_grob (Grob_info s) { - /* Perhaps should try to take SeparationItem as bound of the staff symbol? diff --git a/lily/stanza-number-align-engraver.cc b/lily/stanza-number-align-engraver.cc index 5024f3423b..2c78cbb722 100644 --- a/lily/stanza-number-align-engraver.cc +++ b/lily/stanza-number-align-engraver.cc @@ -1,6 +1,5 @@ - /* - stanza-number-align-engraver.cc -- implement + stanza-number-align-engraver.cc -- implement Stanza_number_align_engraver source file of the GNU LilyPond music typesetter @@ -14,6 +13,8 @@ #include "pointer-group-interface.hh" #include "side-position-interface.hh" +#include "translator.icc" + class Stanza_number_align_engraver : public Engraver { public: @@ -22,7 +23,9 @@ public: protected: Link_array lyrics_; Link_array stanza_numbers_; - virtual void acknowledge_grob (Grob_info); + + DECLARE_ACKNOWLEDGER(lyric_syllable); + DECLARE_ACKNOWLEDGER(stanza_number); PRECOMPUTED_VIRTUAL void stop_translation_timestep (); }; @@ -31,14 +34,17 @@ Stanza_number_align_engraver::Stanza_number_align_engraver () } void -Stanza_number_align_engraver::acknowledge_grob (Grob_info gi) +Stanza_number_align_engraver::acknowledge_lyric_syllable (Grob_info gi) { Grob *h = gi.grob (); + lyrics_.push (h); +} - if (h->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface"))) - lyrics_.push (h); - else if (h->internal_has_interface (ly_symbol2scm ("stanza-number-interface"))) - stanza_numbers_.push (h); +void +Stanza_number_align_engraver::acknowledge_stanza_number (Grob_info gi) +{ + Grob *h = gi.grob (); + stanza_numbers_.push (h); } void @@ -52,13 +58,13 @@ Stanza_number_align_engraver::stop_translation_timestep () lyrics_.clear (); } -#include "translator.icc" - +ADD_ACKNOWLEDGER(Stanza_number_align_engraver,lyric_syllable); +ADD_ACKNOWLEDGER(Stanza_number_align_engraver,stanza_number); ADD_TRANSLATOR (Stanza_number_align_engraver, "This engraver ensures that stanza numbers are neatly aligned. ", "", "", - "stanza-number-interface lyric-syllable-interface ", + " ", "", ""); diff --git a/lily/stanza-number-engraver.cc b/lily/stanza-number-engraver.cc index 618add3881..bacc51b6d9 100644 --- a/lily/stanza-number-engraver.cc +++ b/lily/stanza-number-engraver.cc @@ -23,7 +23,7 @@ public: TRANSLATOR_DECLARATIONS (Stanza_number_engraver); PRECOMPUTED_VIRTUAL void process_music (); PRECOMPUTED_VIRTUAL void stop_translation_timestep (); - virtual void acknowledge_grob (Grob_info); + DECLARE_ACKNOWLEDGER(lyric_syllable); }; /* @@ -52,10 +52,9 @@ Stanza_number_engraver::process_music () } void -Stanza_number_engraver::acknowledge_grob (Grob_info inf) +Stanza_number_engraver::acknowledge_lyric_syllable (Grob_info inf) { - if (text_ - && inf.grob ()->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface"))) + if (text_) { Side_position_interface::add_support (text_, inf.grob ()); } @@ -69,10 +68,11 @@ Stanza_number_engraver::stop_translation_timestep () #include "translator.icc" +ADD_ACKNOWLEDGER(Stanza_number_engraver,lyric_syllable); ADD_TRANSLATOR (Stanza_number_engraver, /* descr */ "", /* creats*/ "StanzaNumber", /* accepts */ "", - /* acks */ "lyric-syllable-interface", + /* acks */ "", /* reads */ "stanza", /* write */ ""); diff --git a/lily/trill-spanner-engraver.cc b/lily/trill-spanner-engraver.cc index b557218561..15e628510a 100644 --- a/lily/trill-spanner-engraver.cc +++ b/lily/trill-spanner-engraver.cc @@ -25,7 +25,7 @@ public: TRANSLATOR_DECLARATIONS (Trill_spanner_engraver); protected: virtual void finalize (); - virtual void acknowledge_grob (Grob_info); + DECLARE_ACKNOWLEDGER(note_column); virtual bool try_music (Music *); PRECOMPUTED_VIRTUAL void stop_translation_timestep (); PRECOMPUTED_VIRTUAL void process_music (); @@ -94,12 +94,12 @@ Trill_spanner_engraver::process_music () } void -Trill_spanner_engraver::acknowledge_grob (Grob_info info) +Trill_spanner_engraver::acknowledge_note_column (Grob_info info) { Spanner *spans[2] ={span_, finished_}; for (int i = 0; i < 2; i++) { - if (spans[i] && Note_column::has_interface (info.grob ())) + if (spans[i]) { Side_position_interface::add_support (spans[i], info.grob ()); add_bound_item (spans[i], dynamic_cast (info.grob ())); @@ -146,11 +146,11 @@ Trill_spanner_engraver::finalize () span_ = 0; } } - +ADD_ACKNOWLEDGER(Trill_spanner_engraver,note_column); ADD_TRANSLATOR (Trill_spanner_engraver, /* descr */ "Create trill spanner from a Music.", /* creats*/ "TrillSpanner", /* accepts */ "trill-span-event", - /* acks */ "note-column-interface", + /* acks */ "", /* reads */ "", /* write */ ""); diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 7bec0b218e..57e819c2c8 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -35,7 +35,7 @@ public: protected: Array tuplets_; - virtual void acknowledge_grob (Grob_info); + DECLARE_ACKNOWLEDGER(note_column); virtual bool try_music (Music *r); PRECOMPUTED_VIRTUAL void start_translation_timestep (); PRECOMPUTED_VIRTUAL void process_music (); @@ -87,15 +87,12 @@ Tuplet_engraver::process_music () } void -Tuplet_engraver::acknowledge_grob (Grob_info i) +Tuplet_engraver::acknowledge_note_column (Grob_info i) { - if (Note_column::has_interface (i.grob ())) - { - for (int j = 0; j < tuplets_.size (); j++) - if (tuplets_[j].spanner_) - Tuplet_bracket::add_column (tuplets_[j].spanner_, - dynamic_cast (i.grob ())); - } + for (int j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].spanner_) + Tuplet_bracket::add_column (tuplets_[j].spanner_, + dynamic_cast (i.grob ())); } void @@ -134,11 +131,11 @@ Tuplet_engraver::start_translation_timestep () Tuplet_engraver::Tuplet_engraver () { } - +ADD_ACKNOWLEDGER(Tuplet_engraver,note_column); ADD_TRANSLATOR (Tuplet_engraver, /* descr */ "Catch Time_scaled_music and generate appropriate bracket ", /* creats*/ "TupletBracket", /* accepts */ "time-scaled-music", - /* acks */ "note-column-interface", + /* acks */ "", /* reads */ "tupletNumberFormatFunction tupletSpannerDuration", /* write */ "");