]> git.donarmstrong.com Git - lilypond.git/blob - src/sccol.cc
release: 0.0.30
[lilypond.git] / src / sccol.cc
1 #include "debug.hh"
2 #include "pcol.hh"
3 #include "sccol.hh"
4
5 int
6 Score_column::compare(Score_column & c1, Score_column &c2)
7 {
8         return sign(c1.when_ - c2.when_);
9 }
10
11 void
12 Score_column::set_breakable()
13 {
14     pcol_l_->set_breakable();
15 }
16
17 Score_column::Score_column(Moment w)
18 {
19     when_ = w;
20     pcol_l_ = new PCol(0);
21     musical_ = false;
22 }
23
24 bool
25 Score_column::used() {
26     return pcol_l_->used();
27 }
28
29 void
30 Score_column::print() const
31 {
32 #ifndef NPRINT
33     mtor << "Score_column { mus "<< musical_ <<" at " <<  when_<<'\n';
34     mtor << "durations: [";
35     for (int i=0; i < durations.size(); i++)
36         mtor << durations[i] << " ";
37     mtor << "]\n";
38     pcol_l_->print();
39     mtor << "}\n";
40 #endif
41 }
42
43 int
44 Tdescription_compare(Moment &a , Moment& b)
45 {
46     return sign(a-b);
47 }
48
49 void
50 Score_column::preprocess()
51 {
52     durations.sort(Tdescription_compare);
53 }
54 void
55 Score_column::add_duration(Moment d)
56 {
57     assert(d);
58     for (int i = 0; i< durations.size(); i++) {
59         if (d == durations[i])
60             return ;
61     }
62     durations.push(d);
63 }