CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/10/05 13:11:44

Modified files:
        lily           : new-figured-bass-engraver.cc 

Log message:
        (process_music): new file.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/new-figured-bass-engraver.cc.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: lilypond/lily/new-figured-bass-engraver.cc
diff -u lilypond/lily/new-figured-bass-engraver.cc:1.1 
lilypond/lily/new-figured-bass-engraver.cc:1.2
--- lilypond/lily/new-figured-bass-engraver.cc:1.1      Wed Oct  5 13:05:44 2005
+++ lilypond/lily/new-figured-bass-engraver.cc  Wed Oct  5 13:11:44 2005
@@ -46,7 +46,7 @@
 struct New_figured_bass_engraver : public Engraver
 {
   TRANSLATOR_DECLARATIONS(New_figured_bass_engraver);
-  void finalize_spanners();
+  void clear_spanners();
   void add_brackets ();
 protected:
   Array<Figure_group> groups_;
@@ -57,7 +57,6 @@
   Music *rest_event_; 
   
   virtual bool try_music (Music *);
-  virtual void finalize ();
   virtual void derived_mark () const; 
   
   void start_translation_timestep ();
@@ -87,7 +86,7 @@
     found  = found  || groups_[i].current_music_;
 
   if (!found)
-    finalize_spanners (); 
+    clear_spanners (); 
 }
 
 New_figured_bass_engraver::New_figured_bass_engraver ()
@@ -126,7 +125,8 @@
      SCM fig = m->get_property ("figure");
      for (int i = 0; i < groups_.size (); i++)
        {
-        if (ly_is_equal (groups_[i].number_, fig))
+        if (!groups_[i].current_music_
+            && ly_is_equal (groups_[i].number_, fig))
           {
             groups_[i].current_music_ = m;
             groups_[i].is_continuation_ =
@@ -145,8 +145,9 @@
      return true;
    }
 }
+
 void
-New_figured_bass_engraver::finalize_spanners ()
+New_figured_bass_engraver::clear_spanners ()
 {
   if (!alignment_)
     return;
@@ -194,21 +195,21 @@
 {
   if (rest_event_)
     {
-      finalize_spanners ();
+      clear_spanners ();
       return;
     }
   
   if (!continuation_
       && new_musics_.is_empty ())
     {
-      finalize_spanners ();
+      clear_spanners ();
       return;
     }
   
   Grob *muscol = dynamic_cast<Item*> (unsmob_grob (get_property 
("currentMusicalColumn")));
   if (!continuation_)
     {
-      finalize_spanners ();
+      clear_spanners ();
       alignment_ = make_spanner ("BassFigureAlignment", SCM_EOL);
       alignment_->set_bound (LEFT, muscol);
     }
@@ -308,19 +309,17 @@
   add_brackets ();
 }
 
-void
-New_figured_bass_engraver::finalize ()
-{
-  finalize_spanners ();
-}
-
 
 ADD_TRANSLATOR (New_figured_bass_engraver,
                /* doc */
 
                "Make figured bass numbers.",
                /* create */
-               "BassFigure BassFigureLine BassFigureAlignment 
BassFigureBracket",
+               "NewBassFigure "
+               "BassFigureAlignment "
+               "BassFigureBracket",
+               "BassFigureContinuation "
+               "BassFigureLine "
 
                /* accept */
                "bass-figure-event rest-event",


_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to