X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffigured-bass-position-engraver.cc;h=b35d037a35fb0ca8442a3fc3ad90db2b264e4e53;hb=a6a51abfd0195a3cf7d6ea095cf69808852f21ce;hp=632e07adb02ba03eb47b644cc86d1f9b132dd749;hpb=e18531db1f79fb685fbd16d6a2a67bf4b6c09915;p=lilypond.git diff --git a/lily/figured-bass-position-engraver.cc b/lily/figured-bass-position-engraver.cc index 632e07adb0..b35d037a35 100644 --- a/lily/figured-bass-position-engraver.cc +++ b/lily/figured-bass-position-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2005--2010 Han-Wen Nienhuys + Copyright (C) 2005--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -33,15 +33,15 @@ class Figured_bass_position_engraver : public Engraver Spanner *bass_figure_alignment_; Spanner *positioner_; - vector support_; - vector span_support_; + vector support_; + vector span_support_; protected: - DECLARE_ACKNOWLEDGER (note_column); - DECLARE_ACKNOWLEDGER (slur); - DECLARE_END_ACKNOWLEDGER (slur); - DECLARE_ACKNOWLEDGER (tie); - DECLARE_ACKNOWLEDGER (bass_figure_alignment); - DECLARE_END_ACKNOWLEDGER (bass_figure_alignment); + void acknowledge_note_column (Grob_info); + void acknowledge_slur (Grob_info); + void acknowledge_end_slur (Grob_info); + void acknowledge_end_tie (Grob_info); + void acknowledge_bass_figure_alignment (Grob_info); + void acknowledge_end_bass_figure_alignment (Grob_info); virtual void finalize (); void start_spanner (); @@ -49,7 +49,8 @@ protected: void stop_translation_timestep (); }; -Figured_bass_position_engraver::Figured_bass_position_engraver () +Figured_bass_position_engraver::Figured_bass_position_engraver (Context *c) + : Engraver (c) { positioner_ = 0; bass_figure_alignment_ = 0; @@ -72,13 +73,13 @@ Figured_bass_position_engraver::stop_spanner () { positioner_->set_bound (RIGHT, bass_figure_alignment_->get_bound (RIGHT)); } - + positioner_ = 0; bass_figure_alignment_ = 0; } void -Figured_bass_position_engraver::finalize () +Figured_bass_position_engraver::finalize () { stop_spanner (); } @@ -92,8 +93,8 @@ Figured_bass_position_engraver::acknowledge_note_column (Grob_info info) void Figured_bass_position_engraver::acknowledge_end_slur (Grob_info info) { - vector::iterator i = find (span_support_.begin (), span_support_.end (), - info.grob ()); + vector::iterator i = find (span_support_.begin (), span_support_.end (), + info.grob ()); if (i < span_support_.end ()) span_support_.erase (i); @@ -106,7 +107,7 @@ Figured_bass_position_engraver::acknowledge_slur (Grob_info info) } void -Figured_bass_position_engraver::acknowledge_tie (Grob_info info) +Figured_bass_position_engraver::acknowledge_end_tie (Grob_info info) { support_.push_back (info.grob ()); } @@ -117,9 +118,9 @@ Figured_bass_position_engraver::stop_translation_timestep () if (positioner_) { for (vsize i = 0; i < span_support_.size (); i++) - Side_position_interface::add_support (positioner_, span_support_[i]); + Side_position_interface::add_support (positioner_, span_support_[i]); for (vsize i = 0; i < support_.size (); i++) - Side_position_interface::add_support (positioner_, support_[i]); + Side_position_interface::add_support (positioner_, support_[i]); } support_.clear (); @@ -134,29 +135,33 @@ Figured_bass_position_engraver::acknowledge_end_bass_figure_alignment (Grob_info void Figured_bass_position_engraver::acknowledge_bass_figure_alignment (Grob_info info) { - bass_figure_alignment_ = dynamic_cast (info.grob ()); + bass_figure_alignment_ = dynamic_cast (info.grob ()); start_spanner (); } -ADD_ACKNOWLEDGER (Figured_bass_position_engraver, note_column); -ADD_ACKNOWLEDGER (Figured_bass_position_engraver, slur); -ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, slur); -ADD_ACKNOWLEDGER (Figured_bass_position_engraver, tie); -ADD_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment); -ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment); +void +Figured_bass_position_engraver::boot () +{ + ADD_ACKNOWLEDGER (Figured_bass_position_engraver, note_column); + ADD_ACKNOWLEDGER (Figured_bass_position_engraver, slur); + ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, slur); + ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, tie); + ADD_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment); + ADD_END_ACKNOWLEDGER (Figured_bass_position_engraver, bass_figure_alignment); +} ADD_TRANSLATOR (Figured_bass_position_engraver, - /* doc */ - "Position figured bass alignments over notes.", - - /* create */ - "BassFigureAlignmentPositioning ", - - /* read */ - "", - - /* write */ - "" - ); + /* doc */ + "Position figured bass alignments over notes.", + + /* create */ + "BassFigureAlignmentPositioning ", + + /* read */ + "", + + /* write */ + "" + );