2 paper-system-scheme.cc -- implement Prob bindings
4 source file of the GNU LilyPond music typesetter
6 (c) 2005--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
11 LY_DEFINE (ly_prob_set_property_x, "ly:prob-set-property!",
12 2, 1, 0, (SCM system, SCM sym, SCM value),
13 "Set property @var{sym} of @var{system} to @var{value}")
15 Prob *ps = unsmob_prob (system);
16 SCM_ASSERT_TYPE (ps, system, SCM_ARG1, __FUNCTION__, "Prob");
17 SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
19 ps->internal_set_property (sym, value);
20 return SCM_UNSPECIFIED;
23 LY_DEFINE (ly_prob_property, "ly:prob-property",
24 2, 1, 0, (SCM system, SCM sym, SCM dfault),
25 "Return the value for @var{sym}.")
27 Prob *ps = unsmob_prob (system);
28 SCM_ASSERT_TYPE (ps, system, SCM_ARG1, __FUNCTION__, "Prob");
29 SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
31 if (dfault == SCM_UNDEFINED)
34 SCM retval = ps->internal_get_property (sym);
35 if (retval == SCM_EOL)
41 LY_DEFINE (ly_prob_type_p, "ly:prob-type?",
44 "If obj the specified prob-type?")
46 Prob*prob = unsmob_prob (obj);
47 return scm_from_bool (prob && prob->type() == type);
50 LY_DEFINE (ly_make_prob, "ly:make-prob",
55 Prob *pr = new Prob (type, init);
56 SCM x = pr->self_scm () ;
57 return scm_gc_unprotect_object (x);
61 LY_DEFINE(ly_paper_system_p, "ly:paper-system?",
65 return ly_prob_type_p (obj, ly_symbol2scm ("paper-system"));