- Input *ip = unsmob_input (get_mus_property ("origin"));
- return ip ? ip : & dummy_input_global;
-}
-
-
-Music::~Music ()
-{
-
-}
-
-LY_DEFINE(ly_get_mus_property,
- "ly-get-mus-property", 2, 0, 0, (SCM mus, SCM sym),
- "Get the property @var{sym} of music expression @var{mus}.")
-{
- 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_mus_property (sym);
-}
-
-LY_DEFINE(ly_set_mus_property,
- "ly-set-mus-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_mus_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 music object/expression of type @var{type}, init with
-@var{props}. Warning: this interface will likely change in the near
-future.
-
-Music is the data type that music expressions are stored in. The data
-type does not yet offer many manipulations.
-
-WARNING: deprecated; use make-music-by-name.
-")
-{
- 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;