]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-fingering-engraver.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / new-fingering-engraver.cc
index d049e1664ab092f307075da6fd0eb1b0224aee19..cb2a1bd20274288ae4386b3bfa03f5564e4671f2 100644 (file)
@@ -43,11 +43,11 @@ struct Finger_tuple
 
 class New_fingering_engraver : public Engraver
 {
-  std::vector<Finger_tuple> fingerings_;
-  std::vector<Finger_tuple> articulations_;
-  std::vector<Finger_tuple> string_numbers_;
+  vector<Finger_tuple> fingerings_;
+  vector<Finger_tuple> articulations_;
+  vector<Finger_tuple> string_numbers_;
 
-  Link_array<Grob> heads_;
+  vector<Grob*> heads_;
   Grob *stem_;
 
 public:
@@ -59,7 +59,7 @@ protected:
   void add_fingering (Grob *, Music *, Music *);
   void add_script (Grob *, Music *, Music *);
   void add_string (Grob *, Music *, Music *);
-  void position_scripts (SCM orientations, std::vector<Finger_tuple> *);
+  void position_scripts (SCM orientations, vector<Finger_tuple> *);
 };
 
 void
@@ -187,11 +187,11 @@ New_fingering_engraver::add_string (Grob *head,
 
 void
 New_fingering_engraver::position_scripts (SCM orientations,
-                                         std::vector<Finger_tuple> *scripts)
+                                         vector<Finger_tuple> *scripts)
 {
   for (vsize i = 0; i < scripts->size (); i++)
-    if (stem_ && to_boolean (scripts->elem (i).script_->get_property ("add-stem-support")))
-      Side_position_interface::add_support (scripts->elem (i).script_, stem_);
+    if (stem_ && to_boolean (scripts->at (i).script_->get_property ("add-stem-support")))
+      Side_position_interface::add_support (scripts->at (i).script_, stem_);
 
   /*
     This is not extremely elegant, but we have to do a little
@@ -209,7 +209,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
     for (vsize j = heads_.size (); j--;)
       Side_position_interface::add_support ((*scripts)[i].script_, heads_[j]);
 
-  std::vector<Finger_tuple> up, down, horiz;
+  vector<Finger_tuple> up, down, horiz;
   for (vsize i = scripts->size (); i--;)
     {
       SCM d = (*scripts)[i].finger_event_->get_property ("direction");
@@ -241,19 +241,17 @@ New_fingering_engraver::position_scripts (SCM orientations,
          scripts->erase (scripts->begin ());
        }
 
-      horiz.concat (*scripts);
+      horiz.insert (horiz.end (), scripts->begin (), scripts->end ());
     }
   else if (up_p && down_p)
     {
       int center = scripts->size () / 2;
-      down.concat (std::vector<Finger_tuple> (scripts->begin (),
-                                             scripts->begin () + center));
-      up.concat (std::vector<Finger_tuple> (scripts->begin () + center,
-                                           scripts->end ()));
+      down.insert (down.end (), scripts->begin (), scripts->begin () + center);
+      up.insert (up.end (), scripts->begin () + center, scripts->end ());
     }
   else if (up_p)
     {
-      up.concat (*scripts);
+      up.insert (up.end (), scripts->begin (), scripts->end ());
       scripts->clear ();
     }
   else
@@ -263,7 +261,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
          warning (_ ("no placement found for fingerings"));
          warning (_ ("placing below"));
        }
-      down.concat (*scripts);
+      down.insert (down.end (), scripts->begin (), scripts->end ());
       scripts->clear ();
     }
 
@@ -284,7 +282,7 @@ New_fingering_engraver::position_scripts (SCM orientations,
   int finger_prio = 200;
 
   Direction d = DOWN;
-  Drul_array< std::vector<Finger_tuple> > vertical (down, up);
+  Drul_array< vector<Finger_tuple> > vertical (down, up);
   do
     {
       for (vsize i = 0; i < vertical[d].size (); i++)