- return ip ? ip : & dummy_input_global;
-}
-
-
-Music::~Music ()
-{
-
-}
-
-LY_DEFINE(ly_music_length,
- "ly:music-length", 1, 0, 0, (SCM mus),
- "Get the length (in musical time) of music expression @var{mus}.")
-{
- Music * sc = unsmob_music (mus);
- SCM_ASSERT_TYPE(sc, mus, SCM_ARG1, __FUNCTION__, "music");
- return sc->get_length().smobbed_copy();
-}
-
-LY_DEFINE(ly_music_property,
- "ly:music-property", 2, 0, 0, (SCM mus, SCM sym),
- "Get the property @var{sym} of music expression @var{mus}.\n"
- "If @var{sym} is undefined, return @code{'()}.\n" )
-{
- Music * sc = unsmob_music (mus);
- SCM_ASSERT_TYPE(sc, mus, SCM_ARG1, __FUNCTION__, "music");
- SCM_ASSERT_TYPE(gh_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
-
- return sc->internal_get_property (sym);
-}
-
-LY_DEFINE(ly_music_set_property,
- "ly:music-set-property!", 3, 0, 0,
- (SCM mus, SCM sym, SCM val),
- "Set property @var{sym} in music expression @var{mus} to @var{val}.")
-{
- Music * sc = unsmob_music (mus);
- SCM_ASSERT_TYPE(sc, mus, SCM_ARG1, __FUNCTION__, "music");
- SCM_ASSERT_TYPE(gh_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
-
- bool ok = type_check_assignment (sym, val, ly_symbol2scm ("music-type?"));
- if (ok)
- {
- sc->internal_set_property (sym, val);
- }
-
- return SCM_UNSPECIFIED;
-}
-
-
-LY_DEFINE(ly_music_name, "ly:music-name", 1, 0, 0,
- (SCM mus),
- "Return the name of @var{music}.")
-{
- Music * m = unsmob_music (mus);
- SCM_ASSERT_TYPE(m, mus, SCM_ARG1, __FUNCTION__ ,"music");
-
- const char * nm = classname (m);
- return scm_makfrom0str (nm);
-}
-
-
-
-// to do property args
-LY_DEFINE(ly_extended_make_music,
- "ly:make-bare-music", 2, 0, 0, (SCM type, SCM props),
- "Make a C++ music object of type @var{type}, initialize with\n"
- "@var{props}. \n\n"
- ""
- "This function is for internal use, and is only called by "
- "@code{make-music}, which is the preferred interface "
- "for creating music objects. "
- )
-{
- SCM_ASSERT_TYPE(gh_string_p (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);
- return s;