void start_translation_timestep ();
virtual void acknowledge_audio_element (Audio_element_info);
void process_music ();
- DECLARE_TRANSLATOR_LISTENER (tie);
+ void listen_tie (Stream_event *);
public:
TRANSLATOR_DECLARATIONS (Tie_performer);
};
-Tie_performer::Tie_performer ()
+Tie_performer::Tie_performer (Context *c)
+ : Performer (c)
{
event_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Tie_performer, tie);
void
Tie_performer::listen_tie (Stream_event *ev)
{
SCM p1 = left_mus->get_property ("pitch");
SCM p2 = right_mus->get_property ("pitch");
- if (Pitch::is_smob (p1) && Pitch::is_smob (p2)
- && Pitch::unsmob (p1)->tone_pitch () == Pitch::unsmob (p2)->tone_pitch ())
+ if (unsmob<Pitch> (p1) && unsmob<Pitch> (p2)
+ && unsmob<Pitch> (p1)->tone_pitch () == unsmob<Pitch> (p2)->tone_pitch ())
{
found = true;
// (*it).moment_ already stores the end of the tied note!
now_tied_heads_.clear ();
}
+void
+Tie_performer::boot ()
+{
+ ADD_LISTENER (Tie_performer, tie);
+}
+
ADD_TRANSLATOR (Tie_performer,
/* doc */
"Generate ties between note heads of equal pitch.",