]> git.donarmstrong.com Git - lilypond.git/blob - lily/voice-devnull-engraver.cc
release: 1.3.82
[lilypond.git] / lily / voice-devnull-engraver.cc
1 /*
2   voice-devnull-engraver.cc -- implement Voice_devnull_engraver
3
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #include "engraver.hh"
10 #include "item.hh"
11 #include "musical-request.hh"
12 #include "translator-group.hh"
13
14 class Voice_devnull_engraver : public Engraver
15 {
16 public:
17   VIRTUAL_COPY_CONS (Translator);
18   
19 protected:
20   virtual void acknowledge_element (Score_element_info);
21 };
22
23 ADD_THIS_TRANSLATOR (Voice_devnull_engraver);
24
25 static char const *junk_interfaces[] = {
26   //    "beam-interface",
27   "slur-interface",
28   "tie-interface",
29   "text-item-interface",
30   "text-script-interface",
31   "dynamic-interface",
32   "crescendo-interface",
33   0
34 };
35
36 void
37 Voice_devnull_engraver::acknowledge_element (Score_element_info i)
38 {
39   if (daddy_trans_l_->id_str_ == "two"
40       && (to_boolean (get_property ("unison"))
41           || to_boolean (get_property ("unisilence"))))
42     for (char const **p = junk_interfaces; *p; p++)
43       if (i.elem_l_->has_interface (ly_symbol2scm (*p)))
44         {
45           i.elem_l_->suicide ();
46           return;
47         }
48 }