source file of the GNU LilyPond music typesetter
- (c) 2002--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 2002--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "translator.hh"
-#include "translator-def.hh"
+#include "context-def.hh"
#include "translator-group.hh"
#include "lily-guile.hh"
LY_DEFINE(ly_translator_name,
"ly:translator-name", 1,0,0, (SCM trans),
- "Return the type name of the translator @var{trans}. The name is a symbol.")
+ "Return the type name of the translator object @var{trans}. The name is a symbol.")
{
- Translator* tr = unsmob_translator (trans);
- SCM_ASSERT_TYPE(tr, trans, SCM_ARG1, __FUNCTION__, "Context");
+ Translator * tr = unsmob_translator (trans);
+ SCM_ASSERT_TYPE(tr, trans, SCM_ARG1, __FUNCTION__, "Translator");
char const* nm = classname (tr);
return ly_symbol2scm (nm);
}
+
+LY_DEFINE(ly_context_id,
+ "ly:context-id", 1,0,0, (SCM context),
+ "Return the id string of @var{context}, i.e. for @code{\\context Voice "
+"= one .. } it will return the string @code{one}.")
+{
+ Translator_group* tr = dynamic_cast<Translator_group*> (unsmob_translator (context));
+ SCM_ASSERT_TYPE(tr, context, SCM_ARG1, __FUNCTION__, "Context");
+
+ return scm_makfrom0str (tr->id_string_. to_str0 ());
+}
+
+
+LY_DEFINE(ly_context_name,
+ "ly:context-name", 1,0,0, (SCM context),
+ "Return the name of @var{context}, i.e. for @code{\\context Voice "
+"= one .. } it will return the symbol @code{Voice}.")
+{
+ Translator_group* tr = dynamic_cast<Translator_group*> (unsmob_translator (context));
+ SCM_ASSERT_TYPE(tr, context, SCM_ARG1, __FUNCTION__, "Context");
+
+ return unsmob_context_def (tr->definition_)->get_context_name ();
+}
+
+
LY_DEFINE(ly_translator_description,
"ly:translator-description",
1,0,0, (SCM me),
Translator *sc = (Translator *) ly_cdr (s);
scm_puts ("#<Translator ", port);
- if (Translator_def *d=unsmob_translator_def (sc->definition_))
+ if (Context_def *d=unsmob_context_def (sc->definition_))
{
scm_display (d->get_context_name (), port);
}
else
scm_display (ly_translator_name (s), port);
+ if (Translator_group *td=dynamic_cast<Translator_group*> (sc))
+ {
+ scm_puts ("=", port);
+ scm_puts (td->id_string_.to_str0 (), port);
+ }
+
scm_display (sc->simple_trans_list_, port);
/*