]> git.donarmstrong.com Git - lilypond.git/blob - lily/grid-point-engraver.cc
f2125a36cdf61c3b1736731ec59b8eb28242630b
[lilypond.git] / lily / grid-point-engraver.cc
1 /*
2   grid-line-engraver.cc --  implement Grid_point_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #include "engraver.hh"
11 #include "item.hh"
12
13 class Grid_point_engraver : public Engraver
14 {
15 public:
16   TRANSLATOR_DECLARATIONS (Grid_point_engraver);
17 protected:
18   virtual void process_music ();
19 };
20
21 void
22 Grid_point_engraver::process_music ()
23 {
24   SCM  grid_interval = get_property ("gridInterval");
25   if (Moment *mom = unsmob_moment (grid_interval))
26     {
27       Moment now = now_mom ();
28
29       if (!now.main_part_.mod_rat (mom->main_part_))
30         {
31           make_item ("GridPoint", SCM_EOL);
32         }
33     }
34 }
35
36 Grid_point_engraver::Grid_point_engraver ()
37 {
38 }
39
40 ADD_TRANSLATOR (Grid_point_engraver,
41                 /* descr */ "generate grid points.",
42                 /* creats*/ "GridPoint",
43                 /* accepts */ "",
44                 /* acks  */ "",
45                 /* reads */ "gridInterval",
46                 /* write */ "");
47