X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fepisema-engraver.cc;h=d2fc2f398f9ac8856a0ef4b69cf2e5d3392edb20;hb=16a2d2cb8c7fac8a64b76856dd7c1af343957a21;hp=38d39508480ea7a586f5c99b1ae2f1d839c13212;hpb=55ac733b69643a6bc6a83b706c65cb56efd388ef;p=lilypond.git diff --git a/lily/episema-engraver.cc b/lily/episema-engraver.cc index 38d3950848..d2fc2f398f 100644 --- a/lily/episema-engraver.cc +++ b/lily/episema-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2010--2011 Neil Puttock + Copyright (C) 2010--2015 Neil Puttock LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,9 +33,9 @@ public: TRANSLATOR_DECLARATIONS (Episema_engraver); protected: virtual void finalize (); - DECLARE_TRANSLATOR_LISTENER (episema); - DECLARE_ACKNOWLEDGER (note_column); - DECLARE_ACKNOWLEDGER (note_head); + void listen_episema (Stream_event *); + void acknowledge_note_column (Grob_info); + void acknowledge_note_head (Grob_info); void stop_translation_timestep (); void process_music (); @@ -56,7 +56,6 @@ Episema_engraver::Episema_engraver () event_drul_.set (0, 0); } -IMPLEMENT_TRANSLATOR_LISTENER (Episema_engraver, episema); void Episema_engraver::listen_episema (Stream_event *ev) { @@ -72,28 +71,28 @@ Episema_engraver::process_music () if (event_drul_[START]) { if (current_event_) - event_drul_[START]->origin ()->warning (_ ("already have an episema")); + event_drul_[START]->origin ()->warning (_ ("already have an episema")); else - { - current_event_ = event_drul_[START]; - span_ = make_spanner ("Episema", event_drul_[START]->self_scm ()); + { + current_event_ = event_drul_[START]; + span_ = make_spanner ("Episema", event_drul_[START]->self_scm ()); - event_drul_[START] = 0; - } + event_drul_[START] = 0; + } } if (event_drul_[STOP]) { if (!span_) - event_drul_[STOP] - ->origin ()->warning (_ ("cannot find start of episema")); + event_drul_[STOP] + ->origin ()->warning (_ ("cannot find start of episema")); else - { - finished_ = span_; - announce_end_grob (finished_, SCM_EOL); - span_ = 0; - current_event_ = 0; - note_columns_.clear (); - } + { + finished_ = span_; + announce_end_grob (finished_, SCM_EOL); + span_ = 0; + current_event_ = 0; + note_columns_.clear (); + } } } @@ -103,12 +102,12 @@ Episema_engraver::typeset_all () if (finished_) { if (!finished_->get_bound (RIGHT)) - { - Grob *col = (note_columns_.size () - ? note_columns_.back () - : unsmob_grob (get_property ("currentMusicalColumn"))); - finished_->set_bound (RIGHT, col); - } + { + Grob *col = (note_columns_.size () + ? note_columns_.back () + : unsmob (get_property ("currentMusicalColumn"))); + finished_->set_bound (RIGHT, col); + } finished_ = 0; } } @@ -119,8 +118,8 @@ Episema_engraver::stop_translation_timestep () if (span_ && !span_->get_bound (LEFT)) { Grob *col = (note_columns_.size () - ? note_columns_.front () - : unsmob_grob (get_property ("currentMusicalColumn"))); + ? note_columns_.front () + : unsmob (get_property ("currentMusicalColumn"))); span_->set_bound (LEFT, col); } @@ -161,19 +160,25 @@ Episema_engraver::acknowledge_note_head (Grob_info info) } } -ADD_ACKNOWLEDGER (Episema_engraver, note_column); -ADD_ACKNOWLEDGER (Episema_engraver, note_head); + +void +Episema_engraver::boot () +{ + ADD_LISTENER (Episema_engraver, episema); + ADD_ACKNOWLEDGER (Episema_engraver, note_column); + ADD_ACKNOWLEDGER (Episema_engraver, note_head); +} ADD_TRANSLATOR (Episema_engraver, - /* doc */ - "Create an @emph{Editio Vaticana}-style episema line.", + /* doc */ + "Create an @emph{Editio Vaticana}-style episema line.", - /* create */ - "Episema ", + /* create */ + "Episema ", - /* read */ - "", + /* read */ + "", - /* write */ - "" - ); + /* write */ + "" + );