/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1998--2012 Jan Nieuwenhuizen <janneke@gnu.org>
+ Copyright (C) 1998--2015 Jan Nieuwenhuizen <janneke@gnu.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
void stop_translation_timestep ();
void process_music ();
- DECLARE_ACKNOWLEDGER (break_aligned);
- DECLARE_ACKNOWLEDGER (break_alignment);
- DECLARE_ACKNOWLEDGER (grob);
+ void acknowledge_break_aligned (Grob_info);
+ void acknowledge_break_alignment (Grob_info);
+ void acknowledge_grob (Grob_info);
- DECLARE_TRANSLATOR_LISTENER (tempo_change);
+ void listen_tempo_change (Stream_event *);
};
-Metronome_mark_engraver::Metronome_mark_engraver ()
+Metronome_mark_engraver::Metronome_mark_engraver (Context *c)
+ : Engraver (c)
{
text_ = 0;
support_ = 0;
tempo_ev_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Metronome_mark_engraver, tempo_change);
void
Metronome_mark_engraver::listen_tempo_change (Stream_event *ev)
{
static bool
safe_is_member (SCM scm, SCM lst)
{
- return scm_list_p (lst) == SCM_BOOL_T
- && scm_member (scm, lst) != SCM_BOOL_F;
+ return ly_is_list (lst) && scm_is_true (scm_member (scm, lst));
}
void
Grob *g = info.grob ();
if (text_
- && g->get_property ("break-align-symbol")
- == ly_symbol2scm ("staff-bar"))
+ && scm_is_eq (g->get_property ("break-align-symbol"),
+ ly_symbol2scm ("staff-bar")))
bar_ = g;
else if (text_
&& !support_
first notational element of the measure if no time
signature is present in that measure).
*/
- if (Grob *mc = unsmob_grob (get_property ("currentMusicalColumn")))
+ if (Grob *mc = unsmob<Grob> (get_property ("currentMusicalColumn")))
text_->set_parent (mc, X_AXIS);
- else if (Grob *cc = unsmob_grob (get_property ("currentCommandColumn")))
+ else if (Grob *cc = unsmob<Grob> (get_property ("currentCommandColumn")))
text_->set_parent (cc, X_AXIS);
}
text_->set_object ("side-support-elements",
}
}
-ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned);
-ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_alignment);
-ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob);
+
+void
+Metronome_mark_engraver::boot ()
+{
+ ADD_LISTENER (Metronome_mark_engraver, tempo_change);
+ ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned);
+ ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_alignment);
+ ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob);
+}
ADD_TRANSLATOR (Metronome_mark_engraver,
/* doc */