X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftime-description.cc;h=22ab2d9acc761770355926bb80694538e948e555;hb=b71bb68fd8b36ec4b00cfec5e620c53087983fc0;hp=dd8c5616d9c795d88ead91a2dd0300d46b87f734;hpb=1a66290a98e7de8d6d41485b5b71a9f7e1fe35c7;p=lilypond.git diff --git a/lily/time-description.cc b/lily/time-description.cc index dd8c5616d9..22ab2d9acc 100644 --- a/lily/time-description.cc +++ b/lily/time-description.cc @@ -3,140 +3,143 @@ source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--1998 Han-Wen Nienhuys */ #include "time-description.hh" #include "debug.hh" String -Time_description::str()const +Time_description::str () const { - String s ("Time_description { "); - if (cadenza_b_) - s+=String (" (cadenza) "); - s+= "at "; - s+=when_; - s+="\nmeter " + String (whole_per_measure_/one_beat_) +":" + - String (Rational (Rational (1)/one_beat_)); - s+= "\nposition "+String (bars_i_) + ":"+ whole_in_measure_ +"\n}\n"; - return s; + String s ("Time_description { "); + if (cadenza_b_) + s += String ("(") + _("cadenza") + ")"; + s += "at "; + s += when_.str (); + s +="\ntime_signature " + (whole_per_measure_/one_beat_).str () +":" + + (Rational (Rational (1)/one_beat_)).str (); + s += "\nposition " + to_str (bars_i_) + ":"+ whole_in_measure_.str () +"\n}\n"; + return s; } void Time_description::print() const { #ifndef NPRINT - DOUT << str(); + DOUT << str (); #endif } void Time_description::OK() const { #ifndef NDEBUG - if (!cadenza_b_) + if (!cadenza_b_) assert (whole_in_measure_ < whole_per_measure_); - assert (Moment (0) <= whole_in_measure_); - assert (one_beat_); + assert (Moment (0) <= whole_in_measure_); + assert (one_beat_); #endif } void Time_description::set_cadenza (bool b) { - if (cadenza_b_ && !b) { - if (whole_in_measure_) { + if (cadenza_b_ && !b) + { + if (whole_in_measure_) + { bars_i_ ++; // should do? whole_in_measure_ = 0; - } + } } - cadenza_b_ = b ; + cadenza_b_ = b ; } Time_description::Time_description() { - error_b_ = false; - whole_per_measure_ = 1; - whole_in_measure_ =0; - one_beat_ = Moment (1,4); - when_ = 0; - bars_i_ = 0; - cadenza_b_ = false; + error_b_ = false; + whole_per_measure_ = 1; + whole_in_measure_ =0; + one_beat_ = Moment (1,4); + when_ = 0; + bars_i_ = 1; // musician start counting at 1 + cadenza_b_ = false; } void Time_description::add (Moment dt) { - assert (dt >= Rational (0)); - when_ += dt; - whole_in_measure_ += dt; - - while ( !cadenza_b_ && whole_in_measure_ >= whole_per_measure_) { + assert (dt >= Rational (0)); + when_ += dt; + whole_in_measure_ += dt; + + while (!cadenza_b_ && whole_in_measure_ >= whole_per_measure_) + { whole_in_measure_ -= whole_per_measure_; bars_i_ ++; } } void -Time_description::set_meter (int l, int o) +Time_description::set_time_signature (int l, int o) { - assert (o); - one_beat_ = Rational (1)/Moment (o); - whole_per_measure_ = Moment (l) * one_beat_; + assert (o); + one_beat_ = Rational (1)/Moment (o); + whole_per_measure_ = Moment (l) * one_beat_; } bool -Time_description::allow_meter_change_b() +Time_description::allow_time_signature_change_b() { - return!(whole_in_measure_); + return!(whole_in_measure_); } /** retrieve error messages. - @return + @return error messages if not possible, "" if possible */ String -Time_description::try_set_partial_str (Moment p)const +Time_description::try_set_partial_str (Moment p) const { - if (p whole_per_measure_) - return ("Partial measure too large"); - return ""; + if (p whole_per_measure_) + return (_ ("partial measure too large")); + return ""; } void Time_description::setpartial (Moment p) { - whole_in_measure_ = whole_per_measure_ - p; + whole_in_measure_ = whole_per_measure_ - p; } Moment -Time_description::barleft()const +Time_description::barleft() const { - assert (!cadenza_b_); - return whole_per_measure_-whole_in_measure_; + assert (!cadenza_b_); + return whole_per_measure_-whole_in_measure_; } int Time_description::compare (Time_description const &t1, Time_description const&t2) { - int i = sign (t1.when_-t2.when_); + int i = sign (t1.when_-t2.when_); - if (!i) { + if (!i) + { assert (t1.bars_i_==t2.bars_i_); assert (t1.one_beat_ == t2.one_beat_); assert (t1.whole_in_measure_ == t2.whole_in_measure_); assert (t1.whole_per_measure_ == t2.whole_per_measure_); } - return i; + return i; } Moment Time_description::next_bar_moment() const { - return when_ + barleft(); + return when_ + barleft(); } -