/*
- music-list.hh -- declare Music_sequence, Simultaneous_music and Sequential_music
+ music-list.hh -- declare Music_sequence,
+ Simultaneous_music and Sequential_music
source file of the GNU LilyPond music typesetter
- (c) 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#define Music_sequence_HH
#include "music.hh"
-#include "plist.hh"
+#include "cons.hh"
-class Music_list : public Pointer_list<Music*>
+class Music_list : public Cons_list<Music>
{
public:
Musical_pitch do_relative_octave (Musical_pitch, bool);
+ Music_iterator* do_rhythm (Music_iterator*);
void add_music (Music*);
Music_list (Music_list const&);
Music_list ();
VIRTUAL_COPY_CONS(Music);
Musical_pitch do_relative_octave (Musical_pitch p, bool b);
+ Music_iterator* do_rhythm (Music_iterator*);
virtual void transpose (Musical_pitch );
virtual void compress (Moment);
void add_music (Music *music_p);
+ int length_i () const;
+ Moment cumulative_length () const;
+ Moment maximum_length () const;
+ virtual ~Music_sequence ();
+
protected:
+ virtual Musical_pitch to_relative_octave (Musical_pitch);
+ virtual Music_iterator* to_rhythm (Music_iterator*);
virtual void do_print() const;
};
Simultaneous_music(Music_list *);
virtual Musical_pitch to_relative_octave (Musical_pitch);
- virtual Moment duration () const;
+ virtual Music_iterator* to_rhythm (Music_iterator*);
+ virtual Moment length_mom () const;
};
VIRTUAL_COPY_CONS(Music);
virtual Musical_pitch to_relative_octave (Musical_pitch);
+ virtual Music_iterator* to_rhythm (Music_iterator*);
Request_chord();
};
class Sequential_music : public Music_sequence
{
public:
-
VIRTUAL_COPY_CONS(Music);
- virtual Musical_pitch to_relative_octave (Musical_pitch);
Sequential_music(Music_list*);
- virtual Moment duration () const;
+ virtual Moment length_mom () const;
};
#endif // Music_sequence_HH