X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fconcurrent-hairpin-engraver.cc;h=17cd90196eb5f02204b556ca0205dd81b7e85a8c;hb=f40aa7dc7410285fc904612941b1909144c01c2f;hp=873e8b5994e01d9ca908bc800b365649f4656b89;hpb=d61cf3bbdb1c6670a127ba3baddf2f04d3e34fd3;p=lilypond.git diff --git a/lily/concurrent-hairpin-engraver.cc b/lily/concurrent-hairpin-engraver.cc index 873e8b5994..17cd90196e 100644 --- a/lily/concurrent-hairpin-engraver.cc +++ b/lily/concurrent-hairpin-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2011--2012 Mike Solomon + Copyright (C) 2011--2015 Mike Solomon LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,8 +34,8 @@ public: TRANSLATOR_DECLARATIONS (Concurrent_hairpin_engraver); protected: - DECLARE_ACKNOWLEDGER (hairpin); - DECLARE_END_ACKNOWLEDGER (hairpin); + void acknowledge_hairpin (Grob_info); + void acknowledge_end_hairpin (Grob_info); void stop_translation_timestep (); void finalize (); @@ -46,7 +46,8 @@ private: vector hairpins_hanging_out_; }; -Concurrent_hairpin_engraver::Concurrent_hairpin_engraver () +Concurrent_hairpin_engraver::Concurrent_hairpin_engraver (Context *c) + : Engraver (c) { } @@ -75,8 +76,8 @@ Concurrent_hairpin_engraver::stop_translation_timestep () if (arriving_hairpins_.size ()) { if (arriving_hairpins_.size () > 1) - for (vsize i = 0; i < arriving_hairpins_.size (); i++) - for (vsize j = i; j < arriving_hairpins_.size (); j++) + for (vsize i = 0; i < arriving_hairpins_.size () - 1; i++) + for (vsize j = i + 1; j < arriving_hairpins_.size (); j++) { Pointer_group_interface::add_grob (arriving_hairpins_[i], ly_symbol2scm ("concurrent-hairpins"), arriving_hairpins_[j]); Pointer_group_interface::add_grob (arriving_hairpins_[j], ly_symbol2scm ("concurrent-hairpins"), arriving_hairpins_[i]); @@ -100,8 +101,13 @@ Concurrent_hairpin_engraver::finalize () hairpins_hanging_out_.resize (0); } -ADD_ACKNOWLEDGER (Concurrent_hairpin_engraver, hairpin); -ADD_END_ACKNOWLEDGER (Concurrent_hairpin_engraver, hairpin); + +void +Concurrent_hairpin_engraver::boot () +{ + ADD_ACKNOWLEDGER (Concurrent_hairpin_engraver, hairpin); + ADD_END_ACKNOWLEDGER (Concurrent_hairpin_engraver, hairpin); +} ADD_TRANSLATOR (Concurrent_hairpin_engraver, /* doc */