X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Fmoment.hh;h=c29032f99dc6f56d32fc087b2dcecfaccda7fe16;hb=528d28e079419b3a45098b42b8b2b4eb9f1b15b1;hp=1b132cb60c6245919386fd6128c1a3e2422a2795;hpb=d9b43b93f2c885409bafdb157138158f65cc49aa;p=lilypond.git diff --git a/lily/include/moment.hh b/lily/include/moment.hh index 1b132cb60c..c29032f99d 100644 --- a/lily/include/moment.hh +++ b/lily/include/moment.hh @@ -1,11 +1,21 @@ -/* - moment.hh -- declare Moment - - source file of the GNU LilyPond music typesetter - - (c) 1999--2002 Han-Wen Nienhuys - - */ +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 1999--2015 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 #define MOMENT_HH @@ -17,10 +27,12 @@ Musical timing (Main-timing, grace-timing) with glue for Guilification; */ -class Moment +class Moment : public Simple_smob { - DECLARE_SIMPLE_SMOBS (Moment,); public: + static SCM equal_p (SCM, SCM); + int print_smob (SCM, scm_print_state *) const; + static const char * const type_p_name_; Moment (); Moment (int m); @@ -28,12 +40,13 @@ public: Moment (Rational m); Moment operator - () const; - + void operator += (Moment const &m); - void operator -= (Moment const &m); + void operator -= (Moment const &m); void operator *= (Moment const &m); - void operator /= (Moment const &m); + void operator /= (Moment const &m); + void operator %= (Moment const &m); Rational main_part_; Rational grace_part_; @@ -41,30 +54,31 @@ 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 - */ - SCM smobbed_copy () const; - String str () const; - static int compare (Moment const&, Moment 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, / ); -IMPLEMENT_ARITHMETIC_OPERATOR (Moment, * ); +IMPLEMENT_ARITHMETIC_OPERATOR (Moment, *); +IMPLEMENT_ARITHMETIC_OPERATOR (Moment, % ); -ostream & operator << ( ostream &,Moment const &); +int compare (Moment const &, Moment const &); +INSTANTIATE_COMPARE (Moment const &, Moment::compare); -DECLARE_UNSMOB(Moment,moment); -int compare (Moment const&,Moment const&); -INSTANTIATE_COMPARE (Moment const&, Moment::compare); +Moment robust_scm2moment (SCM, Moment); -#if 0 -IMPLEMENT_ARITHMETIC_OPERATOR (Moment, % ); +#ifdef STREAM_SUPPORT +ostream &operator << (ostream &, Moment const &); #endif -#endif /* MOMENT_HH */ +bool moment_less (SCM a, SCM b); +#endif /* MOMENT_HH */