/* end #define */
#define TRANSLATOR_INHERIT(BASE) \
- using BASE::method_finder
+ using BASE::method_finder; \
+ using BASE::ack_finder;
#define DECLARE_TRANSLATOR_CALLBACKS(NAME) \
template <void (NAME::*mf)()> \
{ \
return Callback_wrapper::make_smob<trampoline<NAME, mf> > (); \
} \
+ template <void (NAME::*callback)(Grob_info)> \
+ static SCM ack_finder () { return ack_find_base<NAME, callback> (); } \
/* end #define */
/*
static SCM
method_finder () { return SCM_UNDEFINED; }
+ // Overriden in Engraver.
+ template <class T, void (T::*callback)(Grob_info)>
+ static SCM
+ ack_find_base () { return SCM_UNDEFINED; }
+
+ template <void (Translator::*)(Grob_info)>
+ static SCM
+ ack_finder () { return SCM_UNDEFINED; }
+
virtual void derived_mark () const;
static SCM event_class_symbol (const char *ev_class);
SCM static_translator_description (const char *grobs,