]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-sequence.cc
release: 1.3.15
[lilypond.git] / lily / music-sequence.cc
index 697f25854a80250fa8fa2d87d174d34cb0f2aa23..60e6459a20f7e850ce1a4a4ca5186c239ff91694 100644 (file)
@@ -3,7 +3,7 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 #include "music-list.hh"
@@ -26,16 +26,16 @@ Music_sequence::Music_sequence(Music_list *mlist_p)
 void
 Music_sequence::transpose (Musical_pitch rq)
 {
-  for (iter (music_p_list_p_->top(),i); i.ok (); i++)
-    i->transpose (rq);    
+  for (Cons<Music> *i = music_p_list_p_->head_; i;  i = i->next_)
+    i->car_->transpose (rq);    
 }
 
 void
 Music_sequence::do_print() const
 {
 #ifndef NPRINT
-  for (iter (music_p_list_p_->top(),i); i.ok (); i++)
-    i->print();
+  for (Cons<Music> *i = music_p_list_p_->head_; i;  i = i->next_)  
+    i->car_->print();
 #endif 
 }
 
@@ -45,3 +45,36 @@ Music_sequence::add_music (Music *m_p)
 {
   music_p_list_p_->add_music (m_p);
 }
+
+Moment
+Music_sequence::cumulative_length () const
+{
+  Moment last=0;
+  for (Cons<Music> *i = music_p_list_p_->head_; i;  i = i->next_)
+    {
+      last += i->car_->length_mom ();
+    }
+  return  last;
+}
+
+Musical_pitch
+Music_sequence::to_relative_octave (Musical_pitch p)
+{
+  return do_relative_octave (p, false);
+}
+
+
+Moment
+Music_sequence::maximum_length () const
+{
+  Moment dur = 0;
+  for (Cons<Music> *i = music_p_list_p_->head_; i;  i = i->next_)
+    dur = dur >? i->car_->length_mom ();
+
+  return dur;
+}
+int
+Music_sequence::length_i () const
+{
+  return cons_list_size_i (music_p_list_p_->head_);
+}