lilypond-0.0.38
[lilypond.git] / hdr / voice.hh
blob06e6e1da279006f08aa94113d2365c3840dcb996
1 #ifndef VOICE_HH
2 #define VOICE_HH
4 #include "proto.hh"
5 #include "plist.hh"
6 #include "moment.hh"
8 /** class for horizontal stuff.
10 Voice is a ordered row of Voice_elements. It is strictly
11 horizontal: you cannot have two rhythmic elements running parallel
12 in a Voice. For proper processing, each Voice should have
13 Group_change_req as a first element.
17 struct Voice {
18 IPointerList<Voice_element *> elts;
19 Moment start;
21 /* *************** */
22 Voice();
23 Voice(Voice const&);
25 Moment when(const Voice_element*)const;
26 Moment last() const;
28 void add(Voice_element*);
29 bool find_plet_start_bo(char c, Moment& moment_r);
30 void print() const;
31 void set_default_group(String id);
32 void set_plet_backwards(Moment& now_moment_r, Moment until_moment, int num_i, int den_i);
35 #endif