source file of the GNU LilyPond music typesetter
- (c) 1999--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1999--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "rational.hh"
/**
- Rationals with glue for Guilification;
+ Musical timing (Main-timing, grace-timing) with glue for
+ Guilification;
*/
class Moment
{
public:
Moment ();
Moment (int m);
- Moment (int m, int n);
+ Moment (Rational, Rational);
Moment (Rational m);
-
+ Moment operator - () const;
+
void operator += (Moment const &m);
void operator -= (Moment const &m);
void operator /= (Moment const &m);
Rational main_part_;
- Rational grace_mom_;
+ Rational grace_part_;
void set_infinite (int k);
-
- operator bool ();
+
+ bool to_bool () const;
int den () const;
int num () const;
/*
Deliver a copy of THIS as a smobified SCM
*/
- SCM smobbed_copy () const;
- String str () 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, * );
-Moment * unsmob_moment (SCM);
+DECLARE_UNSMOB(Moment,moment);
int compare (Moment const&,Moment const&);
INSTANTIATE_COMPARE (Moment const&, Moment::compare);
-#if 0
-IMPLEMENT_ARITHMETIC_OPERATOR (Moment, % );
+Moment robust_scm2moment (SCM, Moment);
+
+#ifdef STREAM_SUPPORT
+std::ostream & operator << (std::ostream &, Moment const &);
#endif
+bool moment_less (SCM a, SCM b);
+
#endif /* MOMENT_HH */