-/*
- piano-pedal-align-engraver.cc -- implement Piano_pedal_align_engraver
-
- source file of the GNU LilyPond music typesetter
-
- (c) 2006--2007 Han-Wen Nienhuys <hanwen@lilypond.org>
-
-*/
+/*
+ This file is part of LilyPond, the GNU music typesetter.
+
+ Copyright (C) 2006--2015 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+
+ LilyPond is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ LilyPond is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- {
-
- if (pedal_info_[i].carrying_item_)
- {
- if (!pedal_info_[i].line_spanner_->get_bound (LEFT))
- pedal_info_[i].line_spanner_->set_bound (LEFT,
- pedal_info_[i].carrying_item_);
-
- pedal_info_[i].line_spanner_->set_bound (RIGHT,
- pedal_info_[i].carrying_item_);
- }
- else if (pedal_info_[i].carrying_spanner_
- || pedal_info_[i].finished_carrying_spanner_
- )
- {
- if (!pedal_info_[i].line_spanner_->get_bound (LEFT)
- && pedal_info_[i].carrying_spanner_->get_bound (LEFT))
- pedal_info_[i].line_spanner_->set_bound (LEFT,
- pedal_info_[i].carrying_spanner_->get_bound (LEFT));
-
-
- if (pedal_info_[i].finished_carrying_spanner_)
- pedal_info_[i].line_spanner_->set_bound (RIGHT,
- pedal_info_[i].finished_carrying_spanner_->get_bound (RIGHT));
- }
-
- for (vsize j = 0; j < supports_.size (); j++)
- {
- Side_position_interface::add_support (pedal_info_[i].line_spanner_, supports_[j]);
- }
-
- if (pedal_info_[i].is_finished ())
- {
- announce_end_grob (pedal_info_[i].line_spanner_, SCM_EOL);
- pedal_info_[i].clear ();
- }
- }
+ {
+
+ if (pedal_info_[i].carrying_item_)
+ {
+ if (!pedal_info_[i].line_spanner_->get_bound (LEFT))
+ pedal_info_[i].line_spanner_->set_bound (LEFT,
+ pedal_info_[i].carrying_item_);
+
+ pedal_info_[i].line_spanner_->set_bound (RIGHT,
+ pedal_info_[i].carrying_item_);
+ }
+ else if (pedal_info_[i].carrying_spanner_
+ || pedal_info_[i].finished_carrying_spanner_
+ )
+ {
+ if (!pedal_info_[i].line_spanner_->get_bound (LEFT)
+ && pedal_info_[i].carrying_spanner_->get_bound (LEFT))
+ pedal_info_[i].line_spanner_->set_bound (LEFT,
+ pedal_info_[i].carrying_spanner_->get_bound (LEFT));
+
+ if (pedal_info_[i].finished_carrying_spanner_)
+ pedal_info_[i].line_spanner_->set_bound (RIGHT,
+ pedal_info_[i].finished_carrying_spanner_->get_bound (RIGHT));
+ }
+
+ for (vsize j = 0; j < supports_.size (); j++)
+ {
+ Side_position_interface::add_support (pedal_info_[i].line_spanner_, supports_[j]);
+ }
+
+ if (pedal_info_[i].is_finished ())
+ {
+ announce_end_grob (pedal_info_[i].line_spanner_, SCM_EOL);
+ pedal_info_[i].clear ();
+ }
+ }
- {
- case (SOSTENUTO):
- sp = make_spanner ("SostenutoPedalLineSpanner", cause);
- break;
- case (SUSTAIN):
- sp = make_spanner ("SustainPedalLineSpanner", cause);
- break;
- case (UNA_CORDA):
- sp = make_spanner ("UnaCordaPedalLineSpanner", cause);
- break;
- default:
- programming_error ("No pedal type fonud!") ;
- return sp;
- }
-
+ {
+ case (SOSTENUTO):
+ sp = make_spanner ("SostenutoPedalLineSpanner", cause);
+ break;
+ case (SUSTAIN):
+ sp = make_spanner ("SustainPedalLineSpanner", cause);
+ break;
+ case (UNA_CORDA):
+ sp = make_spanner ("UnaCordaPedalLineSpanner", cause);
+ break;
+ default:
+ programming_error ("No pedal type fonud!");
+ return sp;
+ }
+
Grob *sp = make_line_spanner (type, gi.grob ()->self_scm ());
Axis_group_interface::add_element (sp, gi.grob ());
pedal_info_[type].carrying_item_ = gi.grob ();
}
Grob *sp = make_line_spanner (type, gi.grob ()->self_scm ());
Axis_group_interface::add_element (sp, gi.grob ());
pedal_info_[type].carrying_item_ = gi.grob ();
}
- {
- SCM cc = get_property ("currentCommandColumn");
- Item *c = unsmob_item (cc);
- pedal_info_[i].line_spanner_->set_bound (RIGHT, c);
+ {
+ SCM cc = get_property ("currentCommandColumn");
+ Item *c = unsmob<Item> (cc);
+ pedal_info_[i].line_spanner_->set_bound (RIGHT, c);
+void
+Piano_pedal_align_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Piano_pedal_align_engraver, note_column);
+ ADD_ACKNOWLEDGER (Piano_pedal_align_engraver, piano_pedal_bracket);
+ ADD_ACKNOWLEDGER (Piano_pedal_align_engraver, piano_pedal_script);
+ ADD_END_ACKNOWLEDGER (Piano_pedal_align_engraver, piano_pedal_bracket);
+}
- /* create */
- "SostenutoPedalLineSpanner "
- "SustainPedalLineSpanner "
- "UnaCordaPedalLineSpanner ",
+ /* create */
+ "SostenutoPedalLineSpanner "
+ "SustainPedalLineSpanner "
+ "UnaCordaPedalLineSpanner ",