(c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
+#include "duration.hh"
#include "input-smob.hh"
#include "ly-smobs.icc"
#include "main.hh"
#include "score.hh"
#include "warn.hh"
-
bool
Music::internal_is_music_type (SCM k) const
{
Music::name () const
{
SCM nm = get_property ("name");
- if (ly_c_symbol_p (nm))
+ if (scm_is_symbol (nm))
{
return ly_symbol2string (nm);
}
print_alist (SCM a, SCM port)
{
/* SCM_EOL -> catch malformed lists. */
- for (SCM s = a; ly_c_pair_p (s); s = ly_cdr (s))
+ for (SCM s = a; scm_is_pair (s); s = ly_cdr (s))
{
scm_display (ly_caar (s), port);
scm_puts (" = ", port);
Music* m = unsmob_music (s);
SCM nm = m->get_property ("name");
- if (ly_c_symbol_p (nm) || ly_c_string_p (nm))
+ if (scm_is_symbol (nm) || scm_is_string (nm))
scm_display (nm, p);
else
scm_puts (classname (m),p);
return ip ? ip : & dummy_input_global;
}
+int
+Music::duration_log () const
+{
+ if (is_mus_type ("rhythmic-event"))
+ return unsmob_duration (get_property ("duration"))->duration_log ();
+ return 0;
+}
Music*
make_music_by_name (SCM sym)
{
Music * sc = unsmob_music (mus);
SCM_ASSERT_TYPE (sc, mus, SCM_ARG1, __FUNCTION__, "music");
- SCM_ASSERT_TYPE (ly_c_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
+ SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
return sc->internal_get_property (sym);
}
{
Music * sc = unsmob_music (mus);
SCM_ASSERT_TYPE (sc, mus, SCM_ARG1, __FUNCTION__, "music");
- SCM_ASSERT_TYPE (ly_c_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
+ SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
bool ok = type_check_assignment (sym, val, ly_symbol2scm ("music-type?"));
if (ok)
"for creating music objects. "
)
{
- SCM_ASSERT_TYPE (ly_c_string_p (type), type, SCM_ARG1, __FUNCTION__, "string");
+ SCM_ASSERT_TYPE (scm_is_string (type), type, SCM_ARG1, __FUNCTION__, "string");
SCM s = make_music (ly_scm2string (type))->self_scm ();
unsmob_music (s)->immutable_property_alist_ = props;
scm_gc_unprotect_object (s);
"of music objects.")
{
if (scm_list_p (lst) == SCM_BOOL_T)
- while (ly_c_pair_p (lst))
+ while (scm_is_pair (lst))
{
if (!unsmob_music (ly_car (lst)))
return SCM_BOOL_F;
copy = unsmob_music (m)->clone ()->self_scm ();
scm_gc_unprotect_object (copy);
}
- else if (ly_c_pair_p (m))
+ else if (scm_is_pair (m))
copy = scm_cons (ly_deep_mus_copy (ly_car (m)),
ly_deep_mus_copy (ly_cdr (m)));
return copy;
}
LY_DEFINE (ly_music_scorify, "ly:music-scorify",
- 1, 0, 0,
- (SCM music),
+ 2, 0, 0,
+ (SCM music, SCM parser),
"Return MUSIC encapsulated in SCORE.")
{
#if 0
SCM_ASSERT_TYPE (ly_c_music_p (music), music, SCM_ARG1, __FUNCTION__, "music");
#endif
Score *score = new Score;
-
- /* URG? */
- SCM check_funcs = ly_scheme_function ("toplevel-music-functions");
- for (; ly_c_pair_p (check_funcs); check_funcs = ly_cdr (check_funcs))
- music = scm_call_1 (ly_car (check_funcs), music);
-
- score->music_ = music;
+
+ score->set_music (music, parser);
+
scm_gc_unprotect_object (score->self_scm ());
return score->self_scm ();
}