/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Grob *stem_;
protected:
- DECLARE_ACKNOWLEDGER (stem);
- DECLARE_ACKNOWLEDGER (slur);
+ void acknowledge_stem (Grob_info);
+ void acknowledge_slur (Grob_info);
TRANSLATOR_DECLARATIONS (Melody_engraver);
void stop_translation_timestep ();
+ void process_acknowledged ();
void process_music ();
};
-Melody_engraver::Melody_engraver ()
+Melody_engraver::Melody_engraver (Context *c)
+ : Engraver (c)
{
stem_ = 0;
melody_item_ = 0;
melody_item_ = 0;
}
+/*
+ Used to be in stop_translation_timestep, but grobs can't
+ be created here.
+*/
void
-Melody_engraver::stop_translation_timestep ()
+Melody_engraver::process_acknowledged ()
{
if (stem_
&& !is_direction (stem_->get_property_data ("neutral-direction")))
Melody_spanner::add_stem (melody_item_, stem_);
}
}
+}
+
+void
+Melody_engraver::stop_translation_timestep ()
+{
stem_ = 0;
}
#include "translator.icc"
-ADD_ACKNOWLEDGER (Melody_engraver, stem);
-ADD_ACKNOWLEDGER (Melody_engraver, slur);
+
+void
+Melody_engraver::boot ()
+{
+ ADD_ACKNOWLEDGER (Melody_engraver, stem);
+ ADD_ACKNOWLEDGER (Melody_engraver, slur);
+}
ADD_TRANSLATOR (Melody_engraver,
/* doc */