2 moment.cc -- implement Moment
4 source file of the GNU LilyPond music typesetter
6 (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
11 #include "lily-guile.hh"
16 Moment::mark_smob (SCM s
)
28 Moment::print_smob (SCM s
, SCM port
, scm_print_state
*)
30 Moment
*r
= (Moment
*) SCM_CDR (s
);
32 scm_puts ("#<Mom ", port
);
34 scm_puts ((char *)str
.ch_C(), port
);
35 scm_puts (" >", port
);
41 Moment::do_smobify_self ()
45 make_rational (SCM n
, SCM d
)
47 if (SCM_INUMP (n
) && SCM_INUMP(d
))
49 Moment
*r
= new Moment (gh_scm2int (n
), gh_scm2int (d
));
50 return r
->smobify_self ();
54 ::error ("Not a number");
59 #include "ly-smobs.icc"
61 IMPLEMENT_SMOBS(Moment
);
66 scm_make_gsubr ("make-moment", 2 , 0, 0, (SCM(*)(...)) make_rational
);
69 ADD_SCM_INIT_FUNC(moms
,init_moments
);
72 Moment::equal_p (SCM a
, SCM b
)
74 Moment
*m1
= SMOB_TO_TYPE(Moment
, a
);
75 Moment
*m2
= SMOB_TO_TYPE(Moment
, b
);
77 return (*m1
== *m2
) ? SCM_BOOL_T
: SCM_BOOL_F
;