]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/simultaneous-music-iterator.hh
* flower
[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--2005 Han-Wen Nienhuys <hanwen@cs.uu.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
23   /// make a new context for every child.
24   bool create_separate_contexts_;
25
26   virtual void construct_children ();
27   virtual Moment pending_moment () const;
28   virtual void do_quit ();
29   virtual bool ok () const;
30   virtual bool run_always () const;
31
32 protected:
33   virtual void process (Moment);
34   virtual Music_iterator *try_music_in_children (Music *) const;
35
36 private:
37   SCM children_list_;
38 };
39
40 #endif // SIMULTANEOUS_MUSIC_ITERATOR_HH