]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/performance.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / performance.cc
index 83a9b910480ab8616d7520943fa6d528176531c8..f765a3193772b021c0bcda98209810b2f676753e 100644 (file)
@@ -3,16 +3,18 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1997--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "performance.hh"
 
 #include <ctime>
+using namespace std;
 
 #include "audio-column.hh"
 #include "audio-staff.hh"
 #include "file-name.hh"
+#include "international.hh"
 #include "lily-version.hh"
 #include "main.hh"
 #include "midi-item.hh"
 #include "string-convert.hh"
 #include "warn.hh"
 
-#include "killing-cons.tcc"
-
 Performance::Performance ()
 {
   midi_ = 0;
-  audio_elem_p_list_ = 0;
 }
 
 Performance::~Performance ()
 {
-  delete audio_elem_p_list_;
+  junk_pointers (audio_elements_);
 }
 
 void
@@ -46,7 +45,7 @@ Performance::output (Midi_stream &midi_stream)
   output_header_track (midi_stream);
   message (_ ("Track...") + " ");
   int channel = 0;
-  for (int i = 0; i < audio_staffs_.size (); i++)
+  for (vsize i = 0; i < audio_staffs_.size (); i++)
     {
       Audio_staff *s = audio_staffs_[i];
       if (be_verbose_global)
@@ -87,8 +86,8 @@ Performance::output_header_track (Midi_stream &midi_stream)
   midi_track.channel_ = 9;
 
   // perhaps multiple text events?
-  String id_string;
-  String str = String (_ ("Creator: "));
+  string id_string;
+  string str = string (_ ("Creator: "));
   id_string = String_convert::pad_to (gnu_lilypond_version_string (), 30);
   str += id_string;
 
@@ -111,7 +110,7 @@ Performance::output_header_track (Midi_stream &midi_stream)
   str = _ ("at ");
   time_t t (time (0));
   str += ctime (&t);
-  str = str.left_string (str.length () - 1);
+  str = str.substr (0, str.length () - 1);
   str = String_convert::pad_to (str, 60);
 
   Audio_text at_a (Audio_text::TEXT, str);
@@ -128,7 +127,7 @@ Performance::output_header_track (Midi_stream &midi_stream)
   Audio_text track_name_a (Audio_text::TRACK_NAME, "Track "
                           + String_convert::int2dec (0, 0, '0'));
   Midi_text track_name (&track_name_a);
-                       
+
   midi_track.add (Moment (0), &track_name);
 
   // Some sequencers read track 0 last.
@@ -143,14 +142,13 @@ void
 Performance::add_element (Audio_element *p)
 {
   if (Audio_staff *s = dynamic_cast<Audio_staff *> (p))
-    {
-      audio_staffs_.push (s);
-    }
-  audio_elem_p_list_ = new Killing_cons<Audio_element> (p, audio_elem_p_list_);
+    audio_staffs_.push_back (s);
+
+  audio_elements_.push_back (p);
 }
 
-SCM
-Performance::process (String out)
+void
+Performance::write_output (string out)
 {
   if (out == "-")
     out = "lelie.midi";
@@ -165,5 +163,5 @@ Performance::process (String out)
 
   output (midi_stream);
   progress_indication ("\n");
-  return SCM_UNDEFINED;
 }
+