- Output_property * o = props_[i];
- SCM pred = gh_car (o->pred_sym_val_list_);
- /*
- should typecheck pred.
- */
- SCM result=gh_apply (pred,
- gh_list (inf.elem_l_->self_scm_, SCM_UNDEFINED));
- if (to_boolean (result))
- {
- Score_element::ly_set_elt_property (inf.elem_l_->self_scm_,
- gh_cadr (o->pred_sym_val_list_),
- gh_caddr (o->pred_sym_val_list_));
- }
+ Stream_event *o = props_[i];
+ Context *d = inf.context ();
+ SCM proc = o->get_property ("procedure");
+ scm_call_3 (proc,
+ inf.grob ()->self_scm (),
+ d->self_scm (),
+ context ()->self_scm ());