*/
#include "music-list.hh"
+#include "music-wrapper.hh"
#include "musical-pitch.hh"
#include "request.hh"
#include "musical-request.hh"
+#include "music-iterator.hh"
#include "main.hh"
#include "killing-cons.tcc"
Moment
Simultaneous_music::length_mom () 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;
+ return maximum_length ();
}
+
void
Music_sequence::compress (Moment m)
{
Moment
Sequential_music::length_mom () 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
-Sequential_music::to_relative_octave (Musical_pitch p)
-{
- return do_relative_octave (p, false);
+ return cumulative_length ();
}
Musical_pitch
return do_relative_octave (p, true);
}
+
Musical_pitch
Music_sequence::do_relative_octave (Musical_pitch p, bool b)
{
return music_p_list_p_->do_relative_octave (p, b);
}
+
Musical_pitch
Music_list::do_relative_octave (Musical_pitch last, bool ret_first)
{
Music_list::Music_list (Music_list const &s)
- : Cons_list<Music> (s)
+ : Cons_list<Music> (s), Input (s)
{
- init_list ();
+ Cons_list<Music>::init ();
clone_killing_cons_list (*this, s.head_);
}
Music_list::Music_list ()
{
}
+
+Music_sequence::~Music_sequence ()
+{
+ delete music_p_list_p_;
+}