X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcompletion-rest-engraver.cc;h=c3b8b10955d767404e34ee2d87bccc0a005e8e82;hb=750b714488c5af6eae22d07163bba8b554734ac6;hp=aeb6673f3725eb9f5522ae460718bc581a181e94;hpb=9f909143a605a677787915e5dcce5dbc48f2211c;p=lilypond.git diff --git a/lily/completion-rest-engraver.cc b/lily/completion-rest-engraver.cc index aeb6673f37..c3b8b10955 100644 --- a/lily/completion-rest-engraver.cc +++ b/lily/completion-rest-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys Jan Nieuwenhuizen LilyPond is free software: you can redistribute it and/or modify @@ -76,7 +76,7 @@ protected: void start_translation_timestep (); void process_music (); void stop_translation_timestep (); - DECLARE_TRANSLATOR_LISTENER (rest); + void listen_rest (Stream_event *); }; void @@ -85,7 +85,6 @@ Completion_rest_engraver::initialize () is_first_ = false; } -IMPLEMENT_TRANSLATOR_LISTENER (Completion_rest_engraver, rest); void Completion_rest_engraver::listen_rest (Stream_event *ev) { @@ -105,15 +104,15 @@ Completion_rest_engraver::listen_rest (Stream_event *ev) Moment Completion_rest_engraver::next_moment (Rational const ¬e_len) { - Moment *e = unsmob_moment (get_property ("measurePosition")); - Moment *l = unsmob_moment (get_property ("measureLength")); + Moment *e = unsmob (get_property ("measurePosition")); + Moment *l = unsmob (get_property ("measureLength")); if (!e || !l || !to_boolean (get_property ("timing"))) { return Moment (0, 0); } Moment result = *l - *e; - Moment const *unit = unsmob_moment (get_property ("completionUnit")); + Moment const *unit = unsmob (get_property ("completionUnit")); if (unit) { @@ -152,7 +151,7 @@ Item * Completion_rest_engraver::make_rest (Stream_event *ev) { Item *rest = make_item ("Rest", ev->self_scm ()); - if (Pitch *p = unsmob_pitch (ev->get_property ("pitch"))) + if (Pitch *p = unsmob (ev->get_property ("pitch"))) { int pos = p->steps (); SCM c0 = get_property ("middleCPosition"); @@ -188,7 +187,7 @@ Completion_rest_engraver::process_music () } else { - orig = unsmob_duration (rest_events_[0]->get_property ("duration")); + orig = unsmob (rest_events_[0]->get_property ("duration")); rest_dur = *orig; SCM factor = get_property ("completionFactor"); if (ly_is_procedure (factor)) @@ -254,10 +253,17 @@ Completion_rest_engraver::start_translation_timestep () ly_bool2scm (rest_events_.size ())); } -Completion_rest_engraver::Completion_rest_engraver () +Completion_rest_engraver::Completion_rest_engraver (Context *c) + : Engraver (c) { } +void +Completion_rest_engraver::boot () +{ + ADD_LISTENER (Completion_rest_engraver, rest); +} + ADD_TRANSLATOR (Completion_rest_engraver, /* doc */ "This engraver replaces @code{Rest_engraver}. It plays"