]> git.donarmstrong.com Git - lilypond.git/blob - hdr/voice.hh
release: 0.0.27
[lilypond.git] / hdr / voice.hh
1 #ifndef VOICE_HH
2 #define VOICE_HH
3
4 #include "proto.hh"
5 #include "plist.hh"
6 #include "moment.hh"
7
8 /// class for  horizontal stuff.
9 struct Voice {
10     IPointerList<Voice_element *> elts;
11     Moment start;
12
13     /****************/
14     Moment when(const Voice_element*)const;
15     Moment last() const;
16     Voice();
17     Voice(Voice const&);
18     void add(Voice_element*);
19     void print() const;
20     void set_default_group(String id);
21 };
22 /**
23
24     Voice is a ordered row of Voice_elements. It is strictly horizontal:
25     you cannot have two rhythmic elements running parallel in a Voice
26
27     */
28
29 /// one horizontal bit. 
30 struct Voice_element {
31     Moment duration;
32     char const* defined_ch_c_l_m;
33     const Voice *voice_l_;
34     IPointerList<Request*> reqs;
35
36     /****************/
37     
38     void add(Request*);
39     Voice_element();
40     Voice_element(Voice_element const & src );
41     void print ()const;
42     void set_default_group(String id);
43 };
44 /** Apart from being a container for the requests, Voice_element is nothing
45     */
46 #endif