]> git.donarmstrong.com Git - lilypond.git/blob - request.cc
release: 0.0.3
[lilypond.git] / request.cc
1 #include "request.hh"
2 Request::Request(Voice_element*v)
3 {
4     elt = v;
5     tag = UNKNOWN;
6 }
7
8 Note_req::Note_req(Voice_element*v):
9     Request(v)
10 {
11     name = 'c';
12     octave = 0;
13     accidental = 0;
14     forceacc = false;
15     balltype = 1;
16     dots = 0;
17     tag = NOTE;
18 }
19
20 Rest_req::Rest_req(Voice_element*v)
21      :Request(v)
22 {
23     balltype = 1;
24     dots = 0;
25     tag =REST;    
26 }
27
28 Request::Request()
29 {
30     elt = 0;
31     tag = UNKNOWN;    
32 }
33
34 Note_req*
35 Request::note()
36 {
37     assert(tag == NOTE);
38     return (Note_req*)this;
39 }
40
41 Rest_req*
42 Request::rest()
43 {
44     assert(tag == REST);
45     return (Rest_req*)this;
46 }
47
48
49 Real
50 wholes(int dur, int dots)
51 {
52     Real f = 1.0/Real(dur);
53     Real delta = f;
54
55     while (dots--) {
56         delta /= 2.0;
57         f += delta;
58     }
59     return f;    
60 }
61
62 Real
63 Note_req::duration() const {    
64     return wholes( balltype,dots);
65 }
66 Real
67 Rest_req::duration() const{
68     return wholes( balltype,dots);
69 }
70