]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/performance.cc
patch::: 1.1.38.jcn1: Cons
[lilypond.git] / lily / performance.cc
index e10a51c229e258d3595f534ce9518b0cee214463..c9b1909b25c99814748e6af5045d0fd64d7f053f 100644 (file)
@@ -29,12 +29,6 @@ Performance::Performance ()
   audio_elem_p_list_ = 0;
 }
 
-void
-Performance::add_column (Audio_column* p)
-{
-  p->performance_l_ = this;
-  add_element (p);
-}
 
 Performance::~Performance()
 {
@@ -51,18 +45,19 @@ Performance::output (Midi_stream& midi_stream)
 
   midi_stream << Midi_header (1, tracks_i, clocks_per_4_i);
   output_header_track (midi_stream);
-  int n = 1;
+  int channel = 1;
   for (int i =0; i < audio_staff_l_arr_.size (); i++)
     {
       Audio_staff *s = audio_staff_l_arr_[i];
+
       /*
        Aargh, let's hear it for the MIDI standard.
        MIDI players tend to ignore instrument settings on
        channel 10, the percussion channel by default.
        */
-      if (n == 10)
-       n++;
-      s->output (midi_stream, n++);
+      if (channel == 9)
+       channel++;
+      s->output (midi_stream, channel++);
     }
 }
 
@@ -110,15 +105,17 @@ Performance::output_header_track (Midi_stream& midi_stream)
   midi_stream << midi_track;
 }
 
-void
-Performance::add_staff (Audio_staff* l)
-{
-  audio_staff_l_arr_.push (l);
-}
-
 void
 Performance::add_element (Audio_element *p)
 {
+  if (Audio_staff*s=dynamic_cast<Audio_staff *> (p)) 
+    {
+      audio_staff_l_arr_.push (s);
+    }
+  else if (Audio_column *c = dynamic_cast<Audio_column*>(p))
+    {
+      c->performance_l_ = this;
+    }
   audio_elem_p_list_ = new Killing_cons<Audio_element> (p, audio_elem_p_list_);
 }
 
@@ -128,8 +125,8 @@ Performance::print() const
 #ifndef NPRINT
   DOUT << "Performance { ";
   DOUT << "Items: ";
-  for (Cons<Audio_element>* i =audio_elem_p_list_; i; i = i->next_)
-    i->car_->print ();
+  for (Cons<Audio_element>* i =audio_elem_p_list_; i; i = i->next_cons_p_)
+    i->car_p_->print ();
   DOUT << "}";
 #endif
 }