X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fduration.cc;h=3d7cb6fdd917dbd696b7fc3bfdd0266a2a79fc9b;hb=36342ddfdbf0c112be9cb4ce471417e9c0e8fa1f;hp=82f5a506c29b4258a69b2fac5a4af898ad4adfdb;hpb=61bba8a98a53e424054b26d63ead26b0696ea29d;p=lilypond.git diff --git a/lily/duration.cc b/lily/duration.cc index 82f5a506c2..3d7cb6fdd9 100644 --- a/lily/duration.cc +++ b/lily/duration.cc @@ -3,20 +3,16 @@ source file of the LilyPond music typesetter - (c) 1997--2004 Jan Nieuwenhuizen - Han-Wen Nienhuys - + (c) 1997--2005 Jan Nieuwenhuizen + Han-Wen Nienhuys */ -#include +#include "duration.hh" #include "misc.hh" #include "lily-proto.hh" -#include "string.hh" -#include "moment.hh" -#include "duration.hh" -#include "ly-smobs.icc" +#include "ly-smobs.icc" int Duration::compare (Duration const &left, Duration const &right) @@ -51,7 +47,7 @@ Duration::get_length () const { Rational mom (1 << abs (durlog_)); - if (durlog_> 0) + if (durlog_ > 0) mom = Rational (1) / mom; Rational delta = mom; @@ -69,8 +65,8 @@ Duration::to_string () const { String s; - if (durlog_ < 0 ) - s = "log = " + ::to_string (durlog_); + if (durlog_ < 0) + s = "log = " + ::to_string (durlog_); else s = ::to_string (1 << durlog_); @@ -80,7 +76,6 @@ Duration::to_string () const return s; } - IMPLEMENT_TYPE_P (Duration, "ly:duration?"); SCM @@ -93,7 +88,7 @@ IMPLEMENT_SIMPLE_SMOBS (Duration); int Duration::print_smob (SCM s, SCM port, scm_print_state *) { - Duration *r = (Duration *) ly_cdr (s); + Duration *r = (Duration *) SCM_CELL_WORD_1 (s); scm_puts ("#to_string ().to_str0 ()), port); @@ -103,10 +98,10 @@ Duration::print_smob (SCM s, SCM port, scm_print_state *) } SCM -Duration::equal_p (SCM a , SCM b) +Duration::equal_p (SCM a, SCM b) { - Duration *p = (Duration *) ly_cdr (a); - Duration *q = (Duration *) ly_cdr (b); + Duration *p = (Duration *) SCM_CELL_WORD_1 (a); + Duration *q = (Duration *) SCM_CELL_WORD_1 (b); bool eq = p->dots_ == q->dots_ && p->durlog_ == q->durlog_ @@ -115,118 +110,6 @@ Duration::equal_p (SCM a , SCM b) return eq ? SCM_BOOL_T : SCM_BOOL_F; } -MAKE_SCHEME_CALLBACK (Duration, less_p, 2); -SCM -Duration::less_p (SCM p1, SCM p2) -{ - Duration *a = unsmob_duration (p1); - Duration *b = unsmob_duration (p2); - - if (compare (*a, *b) < 0) - return SCM_BOOL_T; - else - return SCM_BOOL_F; -} - -LY_DEFINE (ly_duration_less_p, "ly:durationduration_log ()); -} - -LY_DEFINE (ly_duration_dot_count, "ly:duration-dot-count", - 1, 0, 0, (SCM dur), - "Extract the dot count from @var{dur}") -{ - SCM_ASSERT_TYPE (unsmob_duration (dur), dur, SCM_ARG1, __FUNCTION__, "duration"); - return scm_int2num (unsmob_duration (dur)->dot_count ()); -} - -LY_DEFINE (ly_intlog2, "ly:intlog2", - 1, 0, 0, (SCM d), - "The 2-logarithm of 1/@var{d}.") -{ - SCM_ASSERT_TYPE (ly_c_number_p (d), d, SCM_ARG1, __FUNCTION__, "integer"); - int log = intlog2 (ly_scm2int (d)); - return scm_int2num (log); -} - -LY_DEFINE (ly_duration_factor, "ly:duration-factor", - 1, 0, 0, (SCM dur), - "Extract the compression factor from @var{dur}. Return as a pair.") -{ - SCM_ASSERT_TYPE (unsmob_duration (dur), dur, SCM_ARG1, __FUNCTION__, "duration"); - Rational r = unsmob_duration (dur)->factor (); - return scm_cons (scm_int2num (r.num ()), scm_int2num (r.den ())); -} - int Duration::duration_log () const {