]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/simultaneous-music-iterator.hh
790e96806aabf393593f7bfc6e71f4113f0f3bfa
[lilypond.git] / lily / include / simultaneous-music-iterator.hh
1 /*
2   simultaneous-music-iterator.hh -- declare Simultaneous_music_iterator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
8
9 #ifndef SIMULTANEOUS_MUSIC_ITERATOR_HH
10 #define SIMULTANEOUS_MUSIC_ITERATOR_HH
11
12 #include "music-iterator.hh"
13
14 class Simultaneous_music_iterator : public Music_iterator
15 {
16 public:
17   Simultaneous_music_iterator ();
18   Simultaneous_music_iterator (Simultaneous_music_iterator const &);
19   virtual void derived_substitute (Context *f, Context *t);
20   virtual void derived_mark () const;
21   DECLARE_SCHEME_CALLBACK (constructor, ());
22   DECLARE_CLASSNAME(Simultaneous_music_iterator);
23
24   /// make a new context for every child.
25   bool create_separate_contexts_;
26
27   virtual void construct_children ();
28   virtual Moment pending_moment () const;
29   virtual void do_quit ();
30   virtual bool ok () const;
31   virtual bool run_always () const;
32
33 protected:
34   virtual void process (Moment);
35
36 private:
37   SCM children_list_;
38 };
39
40 #endif // SIMULTANEOUS_MUSIC_ITERATOR_HH