source file of the GNU LilyPond music typesetter
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#ifndef SIMULTANEOUS_MUSIC_ITERATOR_HH
#define SIMULTANEOUS_MUSIC_ITERATOR_HH
-#include "cons.hh"
-#include "music-list-iterator.hh"
+#include "music-iterator.hh"
-class Simultaneous_music_iterator : public Music_list_iterator
+class Simultaneous_music_iterator : public Music_iterator
{
public:
-
+ Simultaneous_music_iterator ();
+ Simultaneous_music_iterator (Simultaneous_music_iterator const&);
+ virtual void derived_substitute (Translator_group*f, Translator_group*t) ;
+ virtual void derived_mark () const;
+ DECLARE_SCHEME_CALLBACK(constructor, ());
+
/// make a new context for every child.
bool separate_contexts_b_;
-
- Simultaneous_music_iterator ();
- virtual ~Simultaneous_music_iterator ();
virtual void construct_children ();
- virtual Moment next_moment () const;
+ virtual Moment pending_moment () const;
+ virtual void do_quit();
virtual bool ok () const;
-
+ virtual bool run_always () const;
+
protected:
- virtual void do_print () const;
- virtual void do_process_and_next (Moment);
+ virtual void process (Moment);
+ virtual Music_iterator *try_music_in_children (Music *) const;
private:
- Cons_list<Music_iterator> children_p_list_;
+ SCM children_list_;
};
#endif // SIMULTANEOUS_MUSIC_ITERATOR_HH