]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/beaming.hh
2a0753dfa722fced8c90332eb7c9e444f37528f2
[lilypond.git] / lily / include / beaming.hh
1 /*
2   beaming.hh -- declare beaming.hh
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1999--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7 */
8
9 #ifndef BEAMING_HH
10 #define BEAMING_HH
11
12 #include "parray.hh"
13 #include "moment.hh"
14
15 struct Beaming_info
16 {
17   Moment start_mom_;
18   Drul_array<int> beams_i_drul_;
19
20   Beaming_info (Moment, int);
21   int count (Direction d);
22   Beaming_info ();
23 };
24
25 /*
26   Generate beaming given durations of notes. Beam uses this to
27   set_beaming () for each of its stems.
28 */
29 struct Beaming_info_list
30 {
31   Array<Beaming_info> infos_;
32
33   int beam_extend_count (Direction) const;
34   int best_splitpoint_index (Moment &beat_length, bool subdivide) const;
35   void beamify (Moment &beat_length, bool subdivide);
36   void add_stem (Moment d, int beams);
37   void clip_edges ();
38 };
39
40 #endif /* BEAMING_HH */