]> git.donarmstrong.com Git - lilypond.git/blob - lily/engraver.cc
patch::: 1.3.136.jcn3
[lilypond.git] / lily / engraver.cc
1 /*
2   engraver.cc -- implement Engraver
3
4   Sourcefile of GNU LilyPond music type setter
5
6   (c)  1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #include "music.hh"
10 #include "engraver.hh"
11 #include "engraver-group-engraver.hh"
12 #include "grob.hh"
13
14
15 void
16 Engraver::announce_grob (Grob_info inf)
17 {
18   daddy_grav_l ()->announce_grob (inf);
19 }
20
21 void
22 Engraver::announce_grob (Grob* e, Music *m)
23 {
24   if (m && m->origin ()->location_str ().length_i ())
25     {
26       e->set_grob_property ("origin", m->get_mus_property ("origin"));
27     }
28   
29   Grob_info i (e, m);
30   if (!i.origin_trans_l_)
31     i.origin_trans_l_ = this;
32   daddy_grav_l ()->announce_grob (i);
33 }
34
35
36  
37 void
38 Engraver::typeset_grob (Grob*p)
39 {
40   daddy_grav_l ()->typeset_grob (p);
41 }
42
43
44 Engraver_group_engraver*
45 Engraver::daddy_grav_l () const
46 {
47   return (daddy_trans_l_)
48        ? dynamic_cast<Engraver_group_engraver *> (daddy_trans_l_)
49        : 0;
50 }
51
52 void
53 Engraver::process_music ()
54 {
55   
56 }