]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/pulk-voice.hh
release: 0.0.65
[lilypond.git] / lily / include / pulk-voice.hh
1 /*
2   pulk-voice.hh -- declare Pulk_voice
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef PULK_VOICE_HH
11 #define PULK_VOICE_HH
12
13 #include "lily-proto.hh"
14 #include "lily-proto.hh"
15 #include "moment.hh"
16 #include "priorities.hh"
17 #include "pcursor.hh"
18
19 /**
20   Align requests with starting time.
21
22   To our foreign readers "pulk"ing is what you do with the stuff in
23   your nose to get it out.  (and I don't mean blowing) */
24 class Pulk_voice
25 {
26     PCursor<Voice_element*> cur_;
27     Moment elt_mom_;
28     Priorities<Moment> subtle_moment_priorities_;
29     int subtle_idx_;
30     void set_subtle();
31     void next();
32 public:
33     int staff_idx_;
34
35     Moment when()const;
36     bool ok()const { return cur_.ok() ; }
37
38     Pulk_voice(Voice*, int staff_idx);
39
40     /**
41       Get the requests at when(), and advance.
42      */
43     Array<Request*> get_req_l_arr();
44 };
45
46 #endif // PULK_VOICE_HH