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 "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 ();
- virtual ~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_;
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:
- Pointer_list<Music_iterator*> children_p_list_;
+ SCM children_list_;
};
#endif // SIMULTANEOUS_MUSIC_ITERATOR_HH