X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fpart-combine-engraver.cc;h=cebee4ed9e67ed6895be1b4d1edbdec9e5ba42e8;hb=4a6773dd60ef6ef481e37b00049c9eedcb5b8193;hp=e6a2ceca65ad242c43cbe214591ae3662fd812f5;hpb=2c22efe5a46a37065b10c3f51c5d7db00d07d318;p=lilypond.git diff --git a/lily/part-combine-engraver.cc b/lily/part-combine-engraver.cc index e6a2ceca65..cebee4ed9e 100644 --- a/lily/part-combine-engraver.cc +++ b/lily/part-combine-engraver.cc @@ -1,19 +1,34 @@ /* - part-combine-engraver.cc -- implement PC-engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter - - (c) 2000--2005 Jan Nieuwenhuizen + Copyright (C) 2000--2010 Jan Nieuwenhuizen Han-Wen Nienhuys + + 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. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "engraver.hh" -#include "text-interface.hh" +#include "multi-measure-rest.hh" #include "note-head.hh" -#include "stem.hh" #include "side-position-interface.hh" -#include "multi-measure-rest.hh" +#include "stem.hh" +#include "stream-event.hh" +#include "text-interface.hh" +#include "item.hh" + +#include "translator.icc" class Part_combine_engraver : public Engraver { @@ -23,19 +38,19 @@ protected: DECLARE_ACKNOWLEDGER (note_head); DECLARE_ACKNOWLEDGER (stem); + DECLARE_TRANSLATOR_LISTENER (part_combine); void process_music (); void stop_translation_timestep (); - virtual bool try_music (Music *); private: Item *text_; - Music *event_; + Stream_event *event_; }; -bool -Part_combine_engraver::try_music (Music *m) +IMPLEMENT_TRANSLATOR_LISTENER (Part_combine_engraver, part_combine); +void +Part_combine_engraver::listen_part_combine (Stream_event *ev) { - event_ = m; - return true; + ASSIGN_EVENT_ONCE (event_, ev); } Part_combine_engraver::Part_combine_engraver () @@ -50,13 +65,13 @@ Part_combine_engraver::process_music () if (event_ && to_boolean (get_property ("printPartCombineTexts"))) { - SCM what = event_->get_property ("part-combine-status"); + SCM what = event_->get_property ("class"); SCM text = SCM_EOL; - if (what == ly_symbol2scm ("solo1")) + if (what == ly_symbol2scm ("solo-one-event")) text = get_property ("soloText"); - else if (what == ly_symbol2scm ("solo2")) + else if (what == ly_symbol2scm ("solo-two-event")) text = get_property ("soloIIText"); - else if (what == ly_symbol2scm ("unisono")) + else if (what == ly_symbol2scm ("unisono-event")) text = get_property ("aDueText"); if (Text_interface::is_markup (text)) @@ -94,14 +109,22 @@ Part_combine_engraver::stop_translation_timestep () event_ = 0; } -#include "translator.icc" ADD_ACKNOWLEDGER (Part_combine_engraver, note_head); ADD_ACKNOWLEDGER (Part_combine_engraver, stem); ADD_TRANSLATOR (Part_combine_engraver, - /* doc */ "Part combine engraver for orchestral scores: " - "Print markings a2, Solo, Solo II, and unisono ", - /* create */ "CombineTextScript", - /* accept */ "part-combine-event", - /* read */ "printPartCombineTexts soloText soloIIText " - "aDueText", - /* write */ ""); + /* doc */ + "Part combine engraver for orchestral scores: Print markings" + " @q{a2}, @q{Solo}, @q{Solo II}, and @q{unisono}.", + + /* create */ + "CombineTextScript ", + + /* read */ + "printPartCombineTexts " + "soloText " + "soloIIText " + "aDueText ", + + /* write */ + "" + );