]> git.donarmstrong.com Git - lilypond.git/blob - src/simplestaff.cc
release: 0.0.27
[lilypond.git] / src / simplestaff.cc
1 #include "request.hh"
2 #include "voice.hh"
3 #include "staffwalker.hh"
4 #include "debug.hh"
5 #include "clef.hh"
6 #include "staff.hh"
7 #include "command.hh"
8 #include "simplestaff.hh"
9 #include "sccol.hh" 
10 #include "simplewalker.hh"
11
12
13
14 Simple_column::Simple_column(Score_column*s, Simple_staff *rs)
15     : Staff_column(s)
16 {
17     stem_requester_len = 0;
18     stem_ = 0;    
19     staff_l_ = rs;
20     beam_ = 0;
21     text_=0;
22
23 }
24
25 Simple_staff::Simple_staff()
26 {
27     theline_l_ = 0;
28 }
29
30
31
32 void
33 Simple_column::setup_requests()
34 {
35     for (int i = 0 ; i < v_elts.size(); i ++)
36         for (iter_top(v_elts[i]->reqs,j); j.ok(); j++) {
37             Request *rq= j;
38             if (rq->barcheck()) {
39                 if (tdescription_->whole_in_measure) {
40 //                  error("Barcheck failed, " + tdescription_->str());
41                     error( "Barcheck failed", rq->defined_ch_c_l_m );
42                 }
43             }
44             if (rq->rhythmic()){
45                 notes.push(rq->rhythmic());
46             }
47             if (rq->script()) {
48                 notes.last().scripts.push(rq->script());
49             }
50             if (rq->stem()) {
51                 stem_ = rq->stem();
52                 stem_requester_len = v_elts[i]->duration;
53             }
54             if (rq->text()) {
55                 text_ = rq->text();
56             }
57             if (rq->beam()) {
58                 beam_ = rq->beam();
59             }
60             if (rq->slur()) {
61                 slurs.push(rq->slur());
62             }
63         }
64 }
65
66 Staff_column*
67 Simple_staff::create_col(Score_column*s)
68 {
69     return new Simple_column(s,this);
70 }
71
72 void
73 Simple_staff::walk()
74 {
75     for (Simple_walker sc(this); sc.ok(); sc++) {
76         sc.col()->setup_requests();// TODO
77         sc.process();
78     }
79 }
80 Note_info::Note_info()
81 {
82     rq =0;
83 }
84 Note_info::Note_info(Rhythmic_req*r) {
85     rq = r;
86 }