]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/moment-scheme.cc
* lily/include/translator.icc: new file.
[lilypond.git] / lily / moment-scheme.cc
index 865431c6da63b9f84bfd7135c324c1355d31eaea..831ace9215512d7e7f163698dc3cae3c0b95ee6d 100644 (file)
@@ -61,7 +61,7 @@ LY_DEFINE (ly_mul_moment, "ly:mul-moment",
   Moment *mb = unsmob_moment (b);
   SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
   SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
-  return (*ma * *mb).smobbed_copy ();
+  return (*ma * * mb).smobbed_copy ();
 }
 
 LY_DEFINE (ly_div_moment, "ly:div-moment",
@@ -72,9 +72,40 @@ LY_DEFINE (ly_div_moment, "ly:div-moment",
   Moment *mb = unsmob_moment (b);
   SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
   SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
-  return (*ma / *mb).smobbed_copy ();
+  return (*ma / * mb).smobbed_copy ();
 }
 
+LY_DEFINE (ly_mod_moment, "ly:mod-moment",
+          2, 0, 0, (SCM a, SCM b),
+          "Modulo of two moments.")
+{
+  Moment *ma = unsmob_moment (a);
+  Moment *mb = unsmob_moment (b);
+  SCM_ASSERT_TYPE (ma, a, SCM_ARG1, __FUNCTION__, "moment");
+  SCM_ASSERT_TYPE (mb, b, SCM_ARG2, __FUNCTION__, "moment");
+  return (*ma % * mb).smobbed_copy ();
+}
+
+
+LY_DEFINE (ly_moment_grace_numerator, "ly:moment-grace-numerator",
+          1, 0, 0, (SCM mom),
+          "Extract numerator from grace timing.")
+{
+  Moment *ma = unsmob_moment (mom);
+  SCM_ASSERT_TYPE (ma, mom, SCM_ARG1, __FUNCTION__, "moment");
+
+  return scm_from_int (ma->grace_part_.numerator ());
+}
+
+LY_DEFINE (ly_moment_grace_denominator, "ly:moment-grace-denominator",
+          1, 0, 0, (SCM mom),
+          "Extract denominator from grace timing.")
+{
+  Moment *ma = unsmob_moment (mom);
+  SCM_ASSERT_TYPE (ma, mom, SCM_ARG1, __FUNCTION__, "moment");
+
+  return scm_from_int (ma->grace_part_.denominator ());
+}
 LY_DEFINE (ly_moment_main_numerator, "ly:moment-main-numerator",
           1, 0, 0, (SCM mom),
           "Extract numerator from main timing.")