]> git.donarmstrong.com Git - lilypond.git/blobdiff - src/inputmusic.cc
release: 0.0.32
[lilypond.git] / src / inputmusic.cc
index b007562d1c178c880f4d455d6ec0e0305d55346b..05918a1a5f68e2eeae05c6fda0b2a7e7cc89c80a 100644 (file)
@@ -1,6 +1,7 @@
 #include "debug.hh"
 #include "inputmusic.hh"
 #include "voice.hh"
+#include "musicalrequest.hh"
 
 void
 Simple_music::add(Voice_element*v)
@@ -9,7 +10,7 @@ Simple_music::add(Voice_element*v)
 }
 
 Moment
-Simple_music::length()
+Simple_music::length()const
 {
     return voice_.last();
 }
@@ -20,7 +21,7 @@ Simple_music::translate_time(Moment t)
 }
 
 Voice_list
-Simple_music::convert()
+Simple_music::convert()const
 {
     Voice_list l;
     l.bottom().add(new Voice(voice_));
@@ -36,7 +37,7 @@ Simple_music::print() const
     mtor << "}\n";
 }
 
-/****************/
+/* *************** */
 
 void
 Complex_music::add(Input_music*v)
@@ -47,14 +48,14 @@ Complex_music::add(Input_music*v)
 void
 Complex_music::print() const
 {
-    for (PCursor<Input_music*> i(elts); i.ok(); i++)
+    for (iter_top(elts,i); i.ok(); i++)
         i->print();
 }
 
 void
 Complex_music::concatenate(Complex_music*h)
 {
-    for (PCursor<Input_music*> i(h->elts); i.ok(); i++)
+    for (iter_top(h->elts,i); i.ok(); i++)
        add(i->clone());    
 }
 
@@ -64,11 +65,16 @@ Complex_music::Complex_music()
 
 Complex_music::Complex_music(Complex_music const&s)
 {
-    for (PCursor<Input_music*> i(s.elts); i.ok(); i++)
+    for (iter_top(s.elts,i); i.ok(); i++)
        add(i->clone());
 }
-
-/****************************************************************/
+void
+Complex_music::set_default_group(String g)
+{
+    for (iter_top(elts,i); i.ok(); i++)
+           i->set_default_group(g);
+}
+/* *************************************************************** */
 
 void
 Music_voice::print() const
@@ -94,29 +100,28 @@ Music_voice::add_elt(Voice_element*v)
 }
 
 Moment
-Music_voice::length()
+Music_voice::length()const
 {
-    Moment l = 0.0;
+    Moment l = 0;
     
-    for (PCursor<Input_music*> i(elts); i.ok(); i++)
+    for (iter_top(elts,i); i.ok(); i++)
        l += i->length();
     return l;
 }
 
     
 Voice_list
-Music_voice::convert()
+Music_voice::convert()const
 {
     Voice_list l;
-    Moment here = 0.0;
+    Moment here = 0;
     
-    for (PCursor<Input_music*> i(elts); i.ok(); i++) {
+    for (iter_top(elts,i); i.ok(); i++) {
        Moment len = i->length();       
        Voice_list k(i->convert());
        k.translate_time(here); 
        l.concatenate(k);
-       here +=len;
-       
+       here +=len;     
     }
     return l;    
 }
@@ -129,7 +134,7 @@ Music_voice::translate_time(Moment t)
 
     
     
-/****************/
+/* *************** */
 
 void
 Music_general_chord::add_elt(Voice_element*v)
@@ -150,38 +155,50 @@ Music_general_chord::print() const
 void
 Music_general_chord::translate_time(Moment t)
 {
-    for (PCursor<Input_music*> i(elts); i.ok(); i++) 
+    for (iter_top(elts,i); i.ok(); i++) 
        i->translate_time(t);    
 }
 
 Moment
-Music_general_chord::length()
+Music_general_chord::length()const
 {
     Moment l =0.0;
     
-    for (PCursor<Input_music*> i(elts); i.ok(); i++) 
+    for (iter_top(elts,i); i.ok(); i++) 
        l = l >? i->length();
     return l;
 }
 
 Voice_list
-Music_general_chord::convert()
+Music_general_chord::convert()const
 {
     Voice_list l;
-    for (PCursor<Input_music*> i(elts); i.ok(); i++) {
+    for (iter_top(elts,i); i.ok(); i++) {
        Voice_list k(i->convert());
        l.concatenate(k);
     }
     return l;
 }
 
+/* *************** */
+
+void
+Multi_voice_chord::set_default_group(String g)
+{
+    int j=0;
+    for (iter_top(elts, i); i.ok(); i++) {
+       i->set_default_group(g + String(j));
+       j++;
+    }
+}
+
 
-/****************/
+/* *************** */
 
 void
 Voice_list::translate_time(Moment x)
 {
-    for (PCursor<Voice*> i(*this); i.ok(); i++)
+    for (iter_top(*this,i); i.ok(); i++)
        i->start += x;    
 }