struct Translator_method_binding
{
Translator *translator_;
- Translator_void_method_ptr method_;
+ Translator::Callback method_;
Translator_method_binding ()
{
}
- Translator_method_binding (Translator *tr, Translator_void_method_ptr ptr)
+ Translator_method_binding (Translator *tr, Translator::Callback ptr)
{
translator_ = tr;
method_ = ptr;
VIRTUAL_COPY_CONSTRUCTOR (Translator, NAME); \
static SCM static_description_; \
static Drul_array<vector<Acknowledge_information> > acknowledge_static_array_drul_; \
- virtual void fetch_precomputable_methods (Translator_void_method_ptr methods[]); \
+ virtual void fetch_precomputable_methods (Callback methods[]); \
virtual SCM static_translator_description () const; \
virtual SCM translator_description () const; \
static Grob_info_callback static_get_acknowledger (SCM sym); \
// otherwise get into a circular mess with regard to the definitions
// as the timing of Engraver is exercised from within Translator
typedef void (Translator::*Grob_info_callback) (Grob_info);
+ typedef void (Translator::*Callback) (void);
int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
DEFINE_TRANSLATOR_DOC(classname, desc, grobs, read, write) \
DEFINE_ACKNOWLEDGERS(classname) \
DEFINE_TRANSLATOR_LISTENER_LIST(classname) \
-
+
#define IMPLEMENT_FETCH_PRECOMPUTABLE_METHODS(T) \
void \
- T::fetch_precomputable_methods (Translator_void_method_ptr ptrs[]) \
+ T::fetch_precomputable_methods (Translator::Callback ptrs[]) \
{ \
ptrs[START_TRANSLATION_TIMESTEP] = \
- ((Translator_void_method_ptr) & T::start_translation_timestep == \
- (Translator_void_method_ptr) & Translator::start_translation_timestep) \
- ? 0 \
- : (Translator_void_method_ptr) & T::start_translation_timestep; \
- \
- ptrs[STOP_TRANSLATION_TIMESTEP] = \
- ((Translator_void_method_ptr) & T::stop_translation_timestep == (Translator_void_method_ptr) & Translator::stop_translation_timestep) \
- ? 0 \
- : (Translator_void_method_ptr) & T::stop_translation_timestep; \
- \
- ptrs[PROCESS_MUSIC] = \
- ((Translator_void_method_ptr) & T::process_music == (Translator_void_method_ptr) & Translator::process_music) \
- ? 0 \
- : (Translator_void_method_ptr) & T::process_music; \
- \
- ptrs[PROCESS_ACKNOWLEDGED] = \
- ((Translator_void_method_ptr) & T::process_acknowledged == (Translator_void_method_ptr) & Translator::process_acknowledged) \
- ? 0 \
- : (Translator_void_method_ptr) & T::process_acknowledged; \
+ (&T::start_translation_timestep \
+ == &Translator::start_translation_timestep) \
+ ? 0 \
+ : static_cast<Callback> (&T::start_translation_timestep); \
+ \
+ ptrs[STOP_TRANSLATION_TIMESTEP] = \
+ (& T::stop_translation_timestep == & Translator::stop_translation_timestep) \
+ ? 0 \
+ : static_cast<Callback> (&T::stop_translation_timestep); \
+ \
+ ptrs[PROCESS_MUSIC] = \
+ (&T::process_music == &Translator::process_music) \
+ ? 0 \
+ : static_cast<Callback> (&T::process_music); \
+ \
+ ptrs[PROCESS_ACKNOWLEDGED] = \
+ (&T::process_acknowledged == &Translator::process_acknowledged) \
+ ? 0 \
+ : static_cast<Callback> (&T::process_acknowledged); \
}
void add_acknowledger (Translator::Grob_info_callback ptr,