X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmoment.hh;h=6a3922066eefe427a02cc74267857ef52c0363aa;hb=3c6c00c08ff31f57ec8d88450b4e4e7917bc4f3e;hp=2192680b89e7534c1fb5c35a7ef4d76e9d07a4bf;hpb=bdf4ab13203502e7ec7cf9cf5896527643a07c1f;p=lilypond.git diff --git a/lily/include/moment.hh b/lily/include/moment.hh index 2192680b89..6a3922066e 100644 --- a/lily/include/moment.hh +++ b/lily/include/moment.hh @@ -1,9 +1,20 @@ /* - moment.hh -- declare Moment + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1999--2011 Han-Wen Nienhuys - (c) 1999--2005 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef MOMENT_HH @@ -18,7 +29,7 @@ */ class Moment { - DECLARE_SIMPLE_SMOBS (Moment,); + DECLARE_SIMPLE_SMOBS (Moment); public: Moment (); Moment (int m); @@ -33,6 +44,7 @@ public: void operator *= (Moment const &m); void operator /= (Moment const &m); + void operator %= (Moment const &m); Rational main_part_; Rational grace_part_; @@ -40,19 +52,21 @@ public: void set_infinite (int k); bool to_bool () const; - int den () const; - int num () const; + I64 den () const; + I64 num () const; /* Deliver a copy of THIS as a smobified SCM */ - String to_string () const; + string to_string () const; static int compare (Moment const &, Moment const &); SCM as_scheme () const; }; + IMPLEMENT_ARITHMETIC_OPERATOR (Moment, +); IMPLEMENT_ARITHMETIC_OPERATOR (Moment, -); IMPLEMENT_ARITHMETIC_OPERATOR (Moment, /); IMPLEMENT_ARITHMETIC_OPERATOR (Moment, *); +IMPLEMENT_ARITHMETIC_OPERATOR (Moment, %); DECLARE_UNSMOB (Moment, moment); int compare (Moment const &, Moment const &); @@ -61,7 +75,7 @@ INSTANTIATE_COMPARE (Moment const &, Moment::compare); Moment robust_scm2moment (SCM, Moment); #ifdef STREAM_SUPPORT -std::ostream &operator << (std::ostream &, Moment const &); +ostream &operator << (ostream &, Moment const &); #endif bool moment_less (SCM a, SCM b);