]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/music-list.hh
partial: 1.1.61.jcn
[lilypond.git] / lily / include / music-list.hh
index 477ab2465ffbab164d3c2f89eb246736e342b823..e00d9633ecb3afebb2a4e69a274deab239833912 100644 (file)
@@ -1,9 +1,10 @@
 /*
-  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 ();
@@ -34,13 +36,21 @@ public:
 
   Music_sequence (Music_sequence const&);
   Music_sequence (Music_list *l_p);
-  DECLARE_MY_RUNTIME_TYPEINFO;
-  VIRTUAL_COPY_CONS(Music_sequence,Music);
-
+  
+  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;
 };
 
@@ -50,14 +60,16 @@ protected:
 class Simultaneous_music : public Music_sequence
 {
 public:
-  DECLARE_MY_RUNTIME_TYPEINFO;
-  VIRTUAL_COPY_CONS(Simultaneous_music,Music);
+  
+  VIRTUAL_COPY_CONS(Music);
   
   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;
 };
 
+
 /**
   The request is a collection of Requests. A note that you enter in mudela is 
   one Request_chord, one syllable of lyrics is one Request_chord
@@ -65,22 +77,23 @@ public:
 class Request_chord : public Simultaneous_music
 {
 public:
-  VIRTUAL_COPY_CONS(Request_chord, Music);
-  DECLARE_MY_RUNTIME_TYPEINFO;
+  VIRTUAL_COPY_CONS(Music);
+  
   virtual Musical_pitch to_relative_octave (Musical_pitch);
+  virtual Music_iterator* to_rhythm (Music_iterator*);
   Request_chord();
 };
+
+
 /**
   Sequential_music is a list of music-elements which are placed behind each other.
  */
 class Sequential_music : public Music_sequence
 {
 public:
-  DECLARE_MY_RUNTIME_TYPEINFO;
-  VIRTUAL_COPY_CONS(Sequential_music, Music);
+  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