2 breathing_sign-engraver.cc -- implement Breathing_sign_engraver
4 (c) 1999--2006 Michael Krause
6 written for the GNU LilyPond music typesetter
10 . Cancel any beams running through the breathing sign
11 ([e8 \breathe f e f] should become [e8] \breathe [f e f])
12 . Spacing is not yet completely pretty
15 #include "breathing-sign.hh"
16 #include "engraver.hh"
19 class Breathing_sign_engraver : public Engraver
22 TRANSLATOR_DECLARATIONS (Breathing_sign_engraver);
25 virtual bool try_music (Music *event);
26 void process_music ();
27 void stop_translation_timestep ();
30 Music *breathing_sign_event_;
31 Grob *breathing_sign_;
34 Breathing_sign_engraver::Breathing_sign_engraver ()
37 breathing_sign_event_ = 0;
41 Breathing_sign_engraver::try_music (Music *r)
43 breathing_sign_event_ = r;
48 Breathing_sign_engraver::process_music ()
50 if (breathing_sign_event_)
52 breathing_sign_ = make_item ("BreathingSign", breathing_sign_event_->self_scm ());
57 Breathing_sign_engraver::stop_translation_timestep ()
60 breathing_sign_event_ = 0;
63 #include "translator.icc"
65 ADD_TRANSLATOR (Breathing_sign_engraver,
67 /* create */ "BreathingSign",
68 /* accept */ "breathing-event",