-/**
- A macro to automate administration of translators.
- */
-#define ADD_THIS_TRANSLATOR(T) \
-SCM T::static_description_ = SCM_EOL;\
-static void _ ## T ## _adder () {\
- T *t = new T;\
- T::static_description_ = t->static_translator_description ();\
- scm_permanent_object (T::static_description_);\
- t->type_str_ = classname (t);\
- add_translator (t);\
-}\
-SCM T::translator_description() const\
-{ \
- return static_description_;\
-}\
-ADD_GLOBAL_CTOR (_ ## T ## _adder);
-
-
-
-
-#define ENTER_DESCRIPTION(classname,desc,grobs,acked,read,write) \
-ADD_THIS_TRANSLATOR (classname);\
-SCM \
-classname::static_translator_description () const \
-{ \
- SCM static_properties= SCM_EOL; \
- /* static_properties= acons (name ,gh_str02scm (Translator::name (self_scm ())), \
- static_properties_); \
- */ \
- static_properties= scm_acons (ly_symbol2scm ("grobs-created"), \
- parse_symbol_list (grobs), static_properties); \
- \
- static_properties= scm_acons (ly_symbol2scm ("description"), \
- ly_str02scm (desc), static_properties); \
- \
- static_properties= scm_acons (ly_symbol2scm ("interfaces-acked"), \
- parse_symbol_list (acked), static_properties); \
- \
- static_properties= scm_acons (ly_symbol2scm ("properties-read"), \
- parse_symbol_list (read), static_properties); \
- \
- static_properties= scm_acons (ly_symbol2scm ("properties-written"), \
- parse_symbol_list (write), static_properties); \
- \
- return static_properties; \
-}
-
-
-
-extern Dictionary<Translator*> *global_translator_dict_p;
-void add_translator (Translator*trans_p);
-
-Translator*get_translator_l (String s);
-DECLARE_UNSMOB(Translator,translator);