- Context *one = handles_[CONTEXT_ONE].get_outlet ();
- set_context (one);
- first_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_car (lst))));
- Context *two = handles_[CONTEXT_TWO].get_outlet ();
- set_context (two);
- second_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_cadr (lst))));
-
- char const *syms[]
- = {
- "Stem",
- "DynamicLineSpanner",
- "Tie",
- "Dots",
- "Rest",
- "Slur",
- "TextScript",
- "Script",
- 0
- };
-
- for (char const **p = syms; *p; p++)
- {
- SCM sym = ly_symbol2scm (*p);
- execute_pushpop_property (one, sym,
- ly_symbol2scm ("direction"), scm_from_int (1));
-
- execute_pushpop_property (two, sym,
- ly_symbol2scm ("direction"), scm_from_int (-1));
- }
-}
-
-IMPLEMENT_LISTENER (Part_combine_iterator, set_busy);
-void
-Part_combine_iterator::set_busy (SCM se)
-{
- if (!notice_busy_)
- return;
-
- Stream_event *e = unsmob_stream_event (se);
-
- if (e->in_event_class ("note-event") || e->in_event_class ("cluster-note-event"))
- busy_ = true;
-}
-
-/*
-* Processes a moment in an iterator, and returns whether any new music was reported.
-*/
-bool
-Part_combine_iterator::try_process (Music_iterator *i, Moment m)
-{
- busy_ = false;
- notice_busy_ = true;
-
- i->process (m);
-
- notice_busy_ = false;
- return busy_;