-#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_); \
- add_translator (t); \
- } \
- SCM T::translator_description () const \
- { \
- return static_description_; \
- } \
- ADD_GLOBAL_CTOR (_ ## T ## _adder);
-
-#define ADD_TRANSLATOR(classname, desc, grobs, accepted, read, write) \
- Drul_array< vector<Acknowledge_information> > classname::acknowledge_static_array_drul_; \
- IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS (classname); \
- ADD_THIS_TRANSLATOR (classname); \
- Engraver_void_function_engraver_grob_info \
- classname::static_get_acknowledger (SCM sym) \
- { \
- return generic_get_acknowledger (sym, &acknowledge_static_array_drul_[START]); \
- } \
- Engraver_void_function_engraver_grob_info \
- classname::static_get_end_acknowledger (SCM sym) \
- { \
- return generic_get_acknowledger (sym, &acknowledge_static_array_drul_[STOP]); \
- } \
- 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"), \
- scm_makfrom0str (desc), static_properties); \
- \
- static_properties = scm_acons (ly_symbol2scm ("events-accepted"), \
- parse_symbol_list (accepted), 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; \
+#define ADD_THIS_TRANSLATOR(T) \
+ SCM T::static_description_ = SCM_EOL; \
+ static void _ ## T ## _adder () \
+ { \
+ T *t = new T; \
+ T::static_description_ = \
+ scm_permanent_object (t->static_translator_description ()); \
+ add_translator (t); \
+ } \
+ SCM T::translator_description () const \
+ { \
+ return static_description_; \
+ } \
+ ADD_GLOBAL_CTOR (_ ## T ## _adder); \
+ /* end define */
+
+#define DEFINE_TRANSLATOR_LISTENER_LIST(T) \
+ translator_listener_record *T::listener_list_; \
+ /* end define */
+
+#define DEFINE_ACKNOWLEDGERS(classname) \
+ Drul_array< vector<Acknowledge_information> > classname::acknowledge_static_array_drul_; \
+ Engraver_void_function_engraver_grob_info \
+ classname::static_get_acknowledger (SCM sym) \
+ { \
+ return generic_get_acknowledger (sym, &acknowledge_static_array_drul_[START]); \
+ } \
+ Engraver_void_function_engraver_grob_info \
+ classname::static_get_end_acknowledger (SCM sym) \
+ { \
+ return generic_get_acknowledger (sym, &acknowledge_static_array_drul_[STOP]); \
+ } \
+ /* end define */
+
+#define DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write) \
+ SCM \
+ classname::static_translator_description () const \
+ { \
+ return Translator::static_translator_description (grobs, desc, listener_list_, read, write); \