1 #include "timedescription.hh"
5 Time_description::print() const
7 mtor << "Time_description { at "<<when<<'\n';
8 mtor << "meter " << whole_per_measure << ":" << 1/one_beat
9 << "\nposition "<< bars << ":" << whole_in_measure <<"\n}\n";
12 Time_description::OK() const
14 assert(whole_in_measure < whole_per_measure && 0 <= whole_in_measure);
17 Time_description::Time_description(Moment dt, Time_description const *prev)
23 whole_in_measure += dt;
24 while ( whole_in_measure >= whole_per_measure ) {
25 whole_in_measure -= whole_per_measure;
28 } else { // default 4/4
29 whole_per_measure = 1;
38 Time_description::set_meter(int l, int o)
41 one_beat = 1/Moment(o);
42 whole_per_measure = Moment(l) * one_beat;
46 Time_description::setpartial(Moment p)
49 error_t ("Partial measure only allowed at beginning.", when);
50 if (p<0||p > whole_per_measure)
51 error_t ("Partial measure has incorrect size", when);
52 whole_in_measure = whole_per_measure - p;
55 Time_description::barleft()
57 return whole_per_measure-whole_in_measure;