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