2 engraver.cc -- implement Engraver
4 Sourcefile of GNU LilyPond music type setter
6 (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
12 #include "score-engraver.hh"
17 #include "score-context.hh"
18 #include "lilypond-key.hh"
20 Engraver_group_engraver
*
21 Engraver::get_daddy_engraver () const
23 return dynamic_cast<Engraver_group_engraver
*> (get_daddy_translator ());
27 Engraver::announce_grob (Grob_info inf
)
29 get_daddy_engraver ()->announce_grob (inf
);
33 CAUSE is the object (typically a Music object) that
34 was the reason for making E.
37 Engraver::announce_grob (Grob
*e
, SCM cause
)
39 if (unsmob_music (cause
) || unsmob_grob (cause
))
40 e
->set_property ("cause", cause
);
42 Grob_info
i (this, e
);
44 Engraver_group_engraver
*g
= get_daddy_engraver ();
54 Engraver::get_score_engraver () const
56 return dynamic_cast<Score_engraver
*> (get_score_context ()->implementation ());
59 #include "translator.icc"
61 ADD_TRANSLATOR (Engraver
,
62 "Base class for engravers. Does nothing, so it is not used.",