]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-heads-engraver.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / note-heads-engraver.cc
index 0e48ae90b69c7ea53daf717a62663aaf967f879f..7b91132246c8ac377a9ab9894aba514cc17f066f 100644 (file)
@@ -1,12 +1,13 @@
 /*
   note-heads-engraver.cc -- part of GNU LilyPond
 
-  (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "engraver.hh"
 
 #include <cctype>
+using namespace std;
 
 #include "rhythmic-head.hh"
 #include "output-def.hh"
@@ -19,9 +20,9 @@
 
 class Note_heads_engraver : public Engraver
 {
-  Link_array<Item> notes_;
-  Link_array<Item> dots_;
-  Link_array<Music> note_evs_;
+  vector<Item*> notes_;
+  vector<Item*> dots_;
+  vector<Music*> note_evs_;
 
 public:
   TRANSLATOR_DECLARATIONS (Note_heads_engraver);
@@ -41,7 +42,7 @@ Note_heads_engraver::try_music (Music *m)
 {
   if (m->is_mus_type ("note-event"))
     {
-      note_evs_.push (m);
+      note_evs_.push_back (m);
       return true;
     }
   else if (m->is_mus_type ("busy-playing-event"))
@@ -53,7 +54,7 @@ Note_heads_engraver::try_music (Music *m)
 void
 Note_heads_engraver::process_music ()
 {
-  for (int i = 0; i < note_evs_.size (); i++)
+  for (vsize i = 0; i < note_evs_.size (); i++)
     {
       Music *ev = note_evs_[i];
       Item *note = make_item ("NoteHead", ev->self_scm ());
@@ -72,7 +73,7 @@ Note_heads_engraver::process_music ()
 
          d->set_parent (note, Y_AXIS);
 
-         dots_.push (d);
+         dots_.push_back (d);
        }
 
       Pitch *pit = unsmob_pitch (ev->get_property ("pitch"));
@@ -80,11 +81,9 @@ Note_heads_engraver::process_music ()
 #if 0 /* TODO: should have a mechanism to switch off these warnings. */
 
       if (!pit)
-       {
-         ev->origin ()->warning (_ ("NoteEvent without pitch"));
-       }
+       ev->origin ()->warning (_ ("NoteEvent without pitch"));
 #endif
-      
+
       int pos = pit ? pit->steps () : 0;
       SCM c0 = get_property ("middleCPosition");
       if (scm_is_number (c0))
@@ -108,16 +107,12 @@ Note_heads_engraver::process_music ()
          SCM style = SCM_EOL;
          if (scm_c_vector_length (shape_vector) > delta
              && scm_is_symbol (scm_vector_ref (shape_vector, scm_from_int (delta))))
-           {
-             style = scm_vector_ref (shape_vector, scm_from_int (delta));
-           }
+           style = scm_vector_ref (shape_vector, scm_from_int (delta));
          if (scm_is_symbol (style))
-           {
-             note->set_property ("style", style);
-           }
+           note->set_property ("style", style);
        }
 
-      notes_.push (note);
+      notes_.push_back (note);
     }
 }
 
@@ -132,8 +127,12 @@ Note_heads_engraver::stop_translation_timestep ()
 #include "translator.icc"
 
 ADD_TRANSLATOR (Note_heads_engraver,
-               /* descr */ "Generate noteheads.",
-               /* creats*/ "NoteHead Dots",
-               /* accepts */ "note-event busy-playing-event",
-               /* reads */ "middleCPosition",
+               /* doc */ "Generate noteheads.",
+               /* create */
+               "NoteHead "
+               "Dots",
+               /* accept */
+               "note-event "
+               "busy-playing-event",
+               /* read */ "middleCPosition",
                /* write */ "");