]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/chord-name-engraver.cc
2002-07-31 Rune Zedeler <rune@zedeler.dk>
[lilypond.git] / lily / chord-name-engraver.cc
index 4064e85a522c7b30d65865c25f558a6f8c16c799..bbccd04afee50aed36bd4055f133b46077bdfac9 100644 (file)
 
 class Chord_name_engraver : public Engraver 
 {
-
   TRANSLATOR_DECLARATIONS( Chord_name_engraver);
-
 protected:
   virtual void stop_translation_timestep ();
-  virtual void acknowledge_grob (Grob_info i);
-  virtual void create_grobs ();
+  virtual void process_music ();
   virtual bool try_music (Music *);
 
 private:
   void add_note (Note_req *);
   
-  Item* chord_name_p_;
+  Item* chord_name_;
 
   Protected_scm chord_;
   Protected_scm last_chord_;
@@ -43,7 +40,7 @@ private:
 
 Chord_name_engraver::Chord_name_engraver ()
 {
-  chord_name_p_ = 0;
+  chord_name_ = 0;
   chord_ = gh_cons (SCM_EOL, gh_cons (SCM_EOL, SCM_EOL));
   last_chord_ = chord_;
 }
@@ -78,35 +75,28 @@ Chord_name_engraver::try_music (Music* m)
 }
 
 void
-Chord_name_engraver::acknowledge_grob (Grob_info i)
+Chord_name_engraver::process_music ()
 {
-  if (Note_req* n = dynamic_cast<Note_req*> (i.music_cause ()))
-    add_note (n);
-}
-
-void
-Chord_name_engraver::create_grobs ()
-{
-  if (!chord_name_p_ && ly_car (chord_) != SCM_EOL)
+  if (ly_car (chord_) != SCM_EOL)
     {
-      chord_name_p_ = new Item (get_property ("ChordName"));
-      chord_name_p_->set_grob_property ("chord", chord_);
-      announce_grob(chord_name_p_, SCM_EOL);
+      chord_name_ = new Item (get_property ("ChordName"));
+      chord_name_->set_grob_property ("chord", chord_);
+      announce_grob(chord_name_, SCM_EOL);
       SCM s = get_property ("chordChanges");
       if (to_boolean (s) && ly_car (last_chord_) != SCM_EOL
                  && gh_equal_p (chord_, last_chord_))
-       chord_name_p_->set_grob_property ("begin-of-line-visible", SCM_BOOL_T);
+       chord_name_->set_grob_property ("begin-of-line-visible", SCM_BOOL_T);
     }
 }
 
 void
 Chord_name_engraver::stop_translation_timestep ()
 {
-  if (chord_name_p_)
+  if (chord_name_)
     {
-      typeset_grob (chord_name_p_);
+      typeset_grob (chord_name_);
     }
-  chord_name_p_ = 0;
+  chord_name_ = 0;
 
   if (ly_car (chord_) != SCM_EOL)
     last_chord_ = chord_;
@@ -117,6 +107,6 @@ ENTER_DESCRIPTION(Chord_name_engraver,
 /* descr */       "Catch Note_req's, Tonic_reqs, Inversion_reqs, Bass_req
 and generate the appropriate chordname.",
 /* creats*/       "ChordName",
-/* acks  */       "grob-interface",
+/* acks  */       "",
 /* reads */       "chordChanges",
 /* write */       "");