- if (Span_req * s = dynamic_cast<Span_req*>(r))
- {
- for (Pedal_info*p = info_alist_; p->name_; p ++)
- {
- if (scm_equal_p (s->get_mus_property ("span-type"),
- ly_str02scm (p->name_)) == SCM_BOOL_T)
- {
- p->req_l_drul_[s->get_span_dir()] = s;
- return true;
- }
- }
- }
- return false;
+ Direction d = to_dir (r->get_property ("span-direction"));
+ info_alist_[SOSTENUTO].event_drul_[d] = r;
+}
+
+IMPLEMENT_TRANSLATOR_LISTENER (Piano_pedal_performer, sustain);
+void
+Piano_pedal_performer::listen_sustain (Stream_event *r)
+{
+ Direction d = to_dir (r->get_property ("span-direction"));
+ info_alist_[SUSTAIN].event_drul_[d] = r;