]> git.donarmstrong.com Git - lilypond.git/blob - lily/melody-engraver.cc
* lily/beam.cc (calc_direction): use default-direction
[lilypond.git] / lily / melody-engraver.cc
1 /*
2   melody-engraver.cc -- implement Melody_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
8
9
10 #include "engraver.hh"
11
12 #include "item.hh"
13 #include "melody-spanner.hh"
14
15 /**
16    Make stems upon receiving noteheads.
17 */
18 class Melody_engraver : public Engraver
19 {
20   Grob *melody_item_;
21 protected:
22   
23   DECLARE_ACKNOWLEDGER (stem);
24   TRANSLATOR_DECLARATIONS (Melody_engraver);
25 };
26
27
28 Melody_engraver::Melody_engraver ()
29 {
30   melody_item_ = 0;
31 }
32
33 void
34 Melody_engraver::acknowledge_stem (Grob_info info)
35 {
36   if (!melody_item_)
37     melody_item_ = make_item ("MelodyItem", info.grob ()->self_scm ());
38
39   Melody_spanner::add_stem (melody_item_, info.grob ());
40 }
41
42
43 #include "translator.icc"
44 ADD_ACKNOWLEDGER (Melody_engraver, stem);
45 ADD_TRANSLATOR (Melody_engraver,
46                 "Create information for context dependent typesetting decisions. ",
47                 "MelodyItem",
48                 "",
49                 "",
50                 "");
51