From 5837be11cf336e61e7134097f507ad47e9bd9e68 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 12 Jan 2007 22:52:48 +0100 Subject: [PATCH] move Spanner bindings to separate file. --- lily/grob-scheme.cc | 35 +------------------------------ lily/spanner-scheme.cc | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 34 deletions(-) create mode 100644 lily/spanner-scheme.cc diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index a7c3a0475f..8d3cc0b4a4 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -87,16 +87,7 @@ LY_DEFINE (ly_grob_object, "ly:grob-object", return sc->internal_get_object (sym); } -LY_DEFINE (ly_spanner_get_bound, "ly:spanner-bound", - 2, 0, 0, (SCM slur, SCM dir), - "Get one of the bounds of @var{spanner}. @var{dir} is @code{-1} " - "for left, and @code{1} for right.") -{ - Spanner *sl = dynamic_cast (unsmob_grob (slur)); - SCM_ASSERT_TYPE (sl, slur, SCM_ARG1, __FUNCTION__, "spanner grob"); - SCM_ASSERT_TYPE (is_direction (dir), slur, SCM_ARG2, __FUNCTION__, "dir"); - return sl->get_bound (to_dir (dir))->self_scm (); -} + /* TODO: make difference between scaled and unscalead variable in calling (i.e different funcs.) */ @@ -257,20 +248,6 @@ LY_DEFINE (ly_grob_original, "ly:grob-original", return me->original () ? me->original ()->self_scm () : me->self_scm (); } -/* TODO: maybe we should return a vector -- random access is more - logical for this list? */ -LY_DEFINE (ly_spanner_broken_into, "ly:spanner-broken-into", - 1, 0, 0, (SCM spanner), - "Return broken-into list for @var{spanner}.") -{ - Spanner *me = dynamic_cast (unsmob_grob (spanner)); - SCM_ASSERT_TYPE (me, spanner, SCM_ARG1, __FUNCTION__, "spanner"); - - SCM s = SCM_EOL; - for (vsize i = me->broken_intos_.size (); i--;) - s = scm_cons (me->broken_intos_[i]->self_scm (), s); - return s; -} LY_DEFINE (ly_grob_suicide_x, "ly:grob-suicide!", 1, 0, 0, (SCM g), @@ -296,16 +273,6 @@ LY_DEFINE (ly_grob_translate_axis_x, "ly:grob-translate-axis!", return SCM_UNSPECIFIED; } -LY_DEFINE (ly_spanner_p, "ly:spanner?", - 1, 0, 0, (SCM g), - "Is @var{g} a spanner object?") -{ - Grob *me = unsmob_grob (g); - bool b = dynamic_cast (me); - - return ly_bool2scm (b); -} - LY_DEFINE (ly_grob_default_font, "ly:grob-default-font", 1, 0, 0, (SCM grob), "Return the default font for grob @var{gr}.") diff --git a/lily/spanner-scheme.cc b/lily/spanner-scheme.cc new file mode 100644 index 0000000000..e5a33e0c4b --- /dev/null +++ b/lily/spanner-scheme.cc @@ -0,0 +1,47 @@ +/* + spanner-scheme.cc -- implement Spanner bindings. + + source file of the GNU LilyPond music typesetter + + (c) 2007 Han-Wen Nienhuys + +*/ + +#include "spanner.hh" +#include "item.hh" + +LY_DEFINE (ly_spanner_get_bound, "ly:spanner-bound", + 2, 0, 0, (SCM slur, SCM dir), + "Get one of the bounds of @var{spanner}. @var{dir} is @code{-1} " + "for left, and @code{1} for right.") +{ + Spanner *sl = dynamic_cast (unsmob_grob (slur)); + SCM_ASSERT_TYPE (sl, slur, SCM_ARG1, __FUNCTION__, "spanner grob"); + SCM_ASSERT_TYPE (is_direction (dir), slur, SCM_ARG2, __FUNCTION__, "dir"); + return sl->get_bound (to_dir (dir))->self_scm (); +} + +/* TODO: maybe we should return a vector -- random access is more + logical for this list? */ +LY_DEFINE (ly_spanner_broken_into, "ly:spanner-broken-into", + 1, 0, 0, (SCM spanner), + "Return broken-into list for @var{spanner}.") +{ + Spanner *me = dynamic_cast (unsmob_grob (spanner)); + SCM_ASSERT_TYPE (me, spanner, SCM_ARG1, __FUNCTION__, "spanner"); + + SCM s = SCM_EOL; + for (vsize i = me->broken_intos_.size (); i--;) + s = scm_cons (me->broken_intos_[i]->self_scm (), s); + return s; +} + +LY_DEFINE (ly_spanner_p, "ly:spanner?", + 1, 0, 0, (SCM g), + "Is @var{g} a spanner object?") +{ + Grob *me = unsmob_grob (g); + bool b = dynamic_cast (me); + + return ly_bool2scm (b); +} -- 2.39.2