-LY_DEFINE (ly_layout_lookup, "ly:output-def-lookup",
- 2, 0, 0, (SCM pap, SCM sym),
- "Lookup @var{sym} in @var{pap}. "
- "Return the value or @code{'()} if undefined.")
-{
- Output_def *op = unsmob_output_def (pap);
- SCM_ASSERT_TYPE (op, pap, SCM_ARG1, __FUNCTION__, "Output_def");
- SCM_ASSERT_TYPE (scm_is_symbol (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");
-
- return op->lookup_variable (sym);
-}
-
-LY_DEFINE (ly_output_def_scope, "ly:output-def-scope",
- 1, 0, 0, (SCM def),
- "Get the variable scope inside @var{def}.")
-{
- Output_def *op = unsmob_output_def (def);
- SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
- return op->scope_;
-}
-
-LY_DEFINE (ly_output_def_parent, "ly:output-def-parent",
- 1, 0, 0, (SCM def),
- "Get the parent output-def of @var{def}.")
-{
- Output_def *op = unsmob_output_def (def);
- SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
- return op->parent_ ? op->parent_->self_scm () : SCM_EOL;
-}
-
-LY_DEFINE (ly_output_def_clone, "ly:output-def-clone",
- 1, 0, 0, (SCM def),
- "Clone @var{def}.")
-{
- Output_def *op = unsmob_output_def (def);
- SCM_ASSERT_TYPE (op, def, SCM_ARG1, __FUNCTION__, "Output definition");
- SCM s = op->clone ()->self_scm ();
- scm_gc_unprotect_object (s);
- return s;
-}
-
-LY_DEFINE (ly_output_description, "ly:output-description",
- 1, 0, 0, (SCM output_def),
- "Return the description of translators in @var{output-def}.")
-{
- Output_def *id = unsmob_output_def (output_def);
-
- SCM al = ly_module2alist (id->scope_);
-
- SCM ell = SCM_EOL;
- for (SCM s = al; scm_is_pair (s); s = scm_cdr (s))
- {
- Context_def * td = unsmob_context_def (scm_cdar (s));
- SCM key = scm_caar (s);
- if (td && key == td->get_context_name ())
- ell = scm_cons (scm_cons (key, td->to_alist ()), ell);
- }
- return ell;
-}