]> git.donarmstrong.com Git - lilypond.git/blobdiff - src/inputmusic.cc
release: 0.0.32
[lilypond.git] / src / inputmusic.cc
index db2e3c57d5b0e0bf8e8a5c8db3ca7d8f72b441d6..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)
@@ -8,19 +9,19 @@ Simple_music::add(Voice_element*v)
     voice_.add(v);
 }
 
-Real
-Simple_music::length()
+Moment
+Simple_music::length()const
 {
     return voice_.last();
 }
 void
-Simple_music::translate_time(Real t)
+Simple_music::translate_time(Moment t)
 {
     voice_.start += 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
@@ -93,43 +99,42 @@ Music_voice::add_elt(Voice_element*v)
     s->add(v);             
 }
 
-Real
-Music_voice::length()
+Moment
+Music_voice::length()const
 {
-    Real 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;
-    Real here = 0.0;
+    Moment here = 0;
     
-    for (PCursor<Input_music*> i(elts); i.ok(); i++) {
-       Real len = i->length(); 
+    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;    
 }
 
 void
-Music_voice::translate_time(Real t)
+Music_voice::translate_time(Moment t)
 {
     elts.bottom()->translate_time(t);
 }
 
     
     
-/****************/
+/* *************** */
 
 void
 Music_general_chord::add_elt(Voice_element*v)
@@ -148,40 +153,52 @@ Music_general_chord::print() const
 }
 
 void
-Music_general_chord::translate_time(Real t)
+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);    
 }
 
-Real
-Music_general_chord::length()
+Moment
+Music_general_chord::length()const
 {
-    Real l =0.0;
+    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(Real x)
+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;    
 }