X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-sequence.cc;h=60e6459a20f7e850ce1a4a4ca5186c239ff91694;hb=b2cc0ee8300845fbe604b408adb597247464acc9;hp=697f25854a80250fa8fa2d87d174d34cb0f2aa23;hpb=615a9212789c2cb2994748c023d0e19f3a83a0fd;p=lilypond.git diff --git a/lily/music-sequence.cc b/lily/music-sequence.cc index 697f25854a..60e6459a20 100644 --- a/lily/music-sequence.cc +++ b/lily/music-sequence.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998 Han-Wen Nienhuys + (c) 1998--1999 Han-Wen Nienhuys */ #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 *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 *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 *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 *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_); +}