-}
-
-void
-Part_combine_iterator::process (Moment m)
-{
- Moment now = get_outlet ()->now_mom ();
- Moment *splitm = 0;
-
- for (; scm_is_pair (split_list_); split_list_ = ly_cdr (split_list_))
- {
- splitm = unsmob_moment (ly_caar (split_list_));
- if (splitm && *splitm + start_moment_ > now)
- break ;
-
- SCM tag = ly_cdar (split_list_);
-
- if (tag == ly_symbol2scm ("chords"))
- chords_together ();
- else if (tag == ly_symbol2scm ("apart")
- || tag == ly_symbol2scm ("apart-silence")
- || tag == ly_symbol2scm ("apart-spanner"))
- apart (tag == ly_symbol2scm ("apart-silence"));
- else if (tag == ly_symbol2scm ("unisono"))
- unisono (false);
- else if (tag == ly_symbol2scm ("unisilence"))
- unisono (true);
- else if (tag == ly_symbol2scm ("solo1"))
- solo1 ();
- else if (tag == ly_symbol2scm ("solo2"))
- solo2 ();
- else if (scm_is_symbol (tag))
- {
- String s = "Unknown split directive: "
- + (scm_is_symbol (tag) ? ly_symbol2string (tag) : String ("not a symbol"));
- programming_error (s);
- }
- }
-
- if (first_iter_->ok ())