]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/voice-iterator.hh
a9fec21204b9649e4994a61e70176d1699419dd3
[lilypond.git] / lily / include / voice-iterator.hh
1 /*
2   voice-iter.hh -- declare Voice_iterator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef VOICE_ITER_HH
11 #define VOICE_ITER_HH
12
13
14 #include "music-iterator.hh"
15 #include "pcursor.hh"
16
17 class Voice_iterator :  private PCursor<Music*>, public Music_iterator
18 {
19   Moment here_mom_;
20   const Voice * voice_C_;
21   Music_iterator * iter_p_;
22   void start_next_element();
23   void leave_element();
24   void set_voice_translator();
25     
26 public:
27   Voice_iterator (Voice const*);
28   DECLARE_MY_RUNTIME_TYPEINFO;
29 protected:
30   virtual void do_print() const;
31   virtual void construct_children();
32   ~Voice_iterator();    
33   virtual void process_and_next (Moment);
34   virtual Moment next_moment() const;
35   virtual bool ok() const;
36 };
37
38 #endif // VOICE_ITER_HH