X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmoment.hh;h=b95cf42b4d8183687ecaa518923bde8278ef2499;hb=2750f4bd4ed25ade9a849e08b1c087229c40b44e;hp=615928a62cf7905b76df74737e1ee7a440c91238;hpb=462ddeacef82187d5b85eb92c167f08561ad311a;p=lilypond.git diff --git a/lily/include/moment.hh b/lily/include/moment.hh index 615928a62c..b95cf42b4d 100644 --- a/lily/include/moment.hh +++ b/lily/include/moment.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1999--2000 Han-Wen Nienhuys + (c) 1999--2003 Han-Wen Nienhuys */ @@ -14,43 +14,57 @@ #include "rational.hh" /** - Rationals with glue for Guilification; - */ -struct Moment : public Rational + Musical timing (Main-timing, grace-timing) with glue for + Guilification; +*/ +class Moment { - Moment () { self_scm_ = SCM_EOL; } - Moment (int m) : Rational (m) {self_scm_ = SCM_EOL; } - Moment (int m, int n) : Rational (m,n) {self_scm_ = SCM_EOL; } - Moment (Rational m) : Rational (m) {self_scm_ = SCM_EOL; } - ~Moment (); + DECLARE_SIMPLE_SMOBS (Moment,); +public: + Moment (); + Moment (int m); + + Moment (Rational, Rational); + Moment (Rational m); + + Moment operator - () const; - DECLARE_SMOBS; -}; + void operator += (Moment const &m); + void operator -= (Moment const &m); + void operator *= (Moment const &m); + void operator /= (Moment const &m); -Moment * unsmob_moment (SCM); + Rational main_part_; + Rational grace_part_; -IMPLEMENT_ARITHMETIC_OPERATOR (Moment, / ); + void set_infinite (int k); + + bool to_bool () const; + int den () const; + int num () const; + /* + Deliver a copy of THIS as a smobified SCM + */ + SCM smobbed_copy () const; + String to_string () const; + static int compare (Moment const&, Moment const&); + +}; IMPLEMENT_ARITHMETIC_OPERATOR (Moment, + ); -IMPLEMENT_ARITHMETIC_OPERATOR (Moment, * ); IMPLEMENT_ARITHMETIC_OPERATOR (Moment, - ); -IMPLEMENT_ARITHMETIC_OPERATOR (Moment, % ); - -INSTANTIATE_COMPARE (Moment const&, Rational::compare); - +IMPLEMENT_ARITHMETIC_OPERATOR (Moment, / ); +IMPLEMENT_ARITHMETIC_OPERATOR (Moment, * ); -/** - A really big time-moment. - Windhoze-suck-suck-suck-suck-suck-thank-you-cygnus +DECLARE_UNSMOB(Moment,moment); +int compare (Moment const&,Moment const&); +INSTANTIATE_COMPARE (Moment const&, Moment::compare); - I get tired of all these incompatibilities. Let's just assume that - INT_MAX is really, really, really big. - Can't we name this Saint_jut_mom (Sintjuttemis ?) */ - -/* URG ! WE HAVE TWO RATIONAL INFINITIES! */ -const Moment infinity_mom = INT_MAX; +#ifdef STREAM_SUPPORT +std::ostream & operator << (std::ostream &, Moment const &); +#endif #endif /* MOMENT_HH */