Moment end_moment_;
SCM tie_definition_;
Stream_event *tie_stream_event_;
- Music *tie_event_;
+ Stream_event *tie_event_;
Head_event_tuple ()
{
void
Tie_engraver::listen_tie (Stream_event *ev)
{
- event_ = ev;
+ ASSIGN_EVENT_ONCE (event_, ev);
}
void
Tie_engraver::process_music ()
{
- for (vsize i = 0; i < heads_to_tie_.size (); i++)
- if (heads_to_tie_[i].tie_event_
- || heads_to_tie_[i].tie_stream_event_)
- {
- context ()->set_property ("tieMelismaBusy", SCM_BOOL_T);
- break;
- }
+ bool busy = event_;
+ for (vsize i = 0; !busy && i < heads_to_tie_.size (); i++)
+ busy |= (heads_to_tie_[i].tie_event_
+ || heads_to_tie_[i].tie_stream_event_);
+
+ if (busy)
+ context ()->set_property ("tieMelismaBusy", SCM_BOOL_T);
}
void
SCM left_articulations = left_ev->get_property ("articulations");
- Music *tie_event = 0;
+ Stream_event *tie_event = 0;
Stream_event *tie_stream_event = event_;
for (SCM s = left_articulations;
!tie_event && !tie_stream_event && scm_is_pair (s);
s = scm_cdr (s))
{
- Music *m = unsmob_music (scm_car (s));
- if (!m)
+ Stream_event *ev = unsmob_stream_event (scm_car (s));
+ if (!ev)
continue;
- if (m->is_mus_type ("tie-event"))
- tie_event = m;
+ if (ev->in_event_class ("tie-event"))
+ tie_event = ev;
}
if (left_ev && (tie_event || tie_stream_event))
/* create */
"Tie "
"TieColumn ",
-
- /* accept */ "tie-event",
/* read */ "tieWaitForNote",
/* write */ "tieMelismaBusy");