lilypond-1.3.145
[lilypond.git] / lily / a2-devnull-engraver.cc
blob32aa7d958a8522f150dc818d084262cce72af764
1 /*
2 a2-devnull-engraver.cc -- implement A2_devnull_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
9 #include "engraver.hh"
10 #include "item.hh"
11 #include "musical-request.hh"
12 #include "translator-group.hh"
14 class A2_devnull_engraver : public Engraver
16 public:
17 VIRTUAL_COPY_CONS (Translator);
19 protected:
20 virtual void acknowledge_element (Score_element_info);
21 virtual bool do_try_music (Music *);
24 ADD_THIS_TRANSLATOR (A2_devnull_engraver);
26 Maybe this is too crude.
27 It would probably be better to have a devnull engraver in StaffContext,
28 that acknowledges stuff and suicides it.
30 bool
31 A2_devnull_engraver::do_try_music (Music *m)
33 if (1 //daddy_trans_l_->id_str_ == "two"
34 && (to_boolean (get_property ("unison"))
35 || to_boolean (get_property ("unisilence"))))
38 We mustn't junk Rest requests
40 if (Span_req *s = dynamic_cast <Span_req *> (m))
42 if (s->span_type_str_ == "slur"
43 || s->span_type_str_ == "beam"
44 || s->span_type_str_ == "crescendo"
45 || s->span_type_str_ == "decrescendo")
47 return true;
49 return false;
51 else if (Tie_req *t = dynamic_cast<Tie_req*> (m))
53 return true;
55 else if (Text_script_req *d = dynamic_cast <Text_script_req*> (m))
57 return true;
60 return false;
63 void
64 A2_devnull_engraver::acknowledge_element (Score_element_info i)
66 if (daddy_trans_l_->id_str_ == "two"
67 && (to_boolean (get_property ("unison"))
68 || to_boolean (get_property ("unisilence")))
69 && to_boolean (get_property ("soloADue")))
70 i.elem_l_->suicide ();