]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/pulk-voices.hh
release: 0.0.64
[lilypond.git] / lily / include / pulk-voices.hh
1 /*
2   pulk-voices.hh -- declare Pulk_voices
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7
8   TODO 
9   integrate Meter handling, to guarantee proper creation of staff_columns.
10 */
11
12
13 #ifndef PULK_VOICES_HH
14 #define PULK_VOICES_HH
15
16 #include "pqueue.hh"
17 #include "plist.hh"
18 #include "moment.hh"
19 #include "proto.hh"
20 #include "lily-proto.hh"
21 #include "voice.hh"
22 #include "time-description.hh"
23
24
25 struct Voice_l { 
26     Voice *l_;
27     int  staff_idx_;
28     Voice_l(Voice*v, int i){ l_ = v;
29       staff_idx_ = i;
30     }
31     Voice_l() { l_ = 0; staff_idx_ =0; }
32 };
33 int compare(Voice_l const &p1, Voice_l const &p2);
34
35 class Pulk_voices
36 {
37 PQueue< Voice_l > voice_pq_;
38     Pointer_list< Pulk_voice * > pulk_p_list_;
39     Link_list<Staff *> staff_l_list_;
40     Array < Time_description > time_arr_;
41     Moment next_mom_;
42
43 public:
44     Moment last_;
45     bool time_checks_failed_b() const;
46     bool ok() const;
47     Moment next_mom() const;
48     Pulk_voices(Link_list<Staff*> const&);
49     void get_aligned_request(Request_column *col_l );
50 };
51
52
53 #endif // PULK_VOICES_HH