- handles_[in].get_outlet ()->event_source ()->broadcast (mmrest_event_);
-}
-
-void
-Part_combine_iterator::solo1 ()
-{
- if (state_ == SOLO1)
- return;
- else
- {
- state_ = SOLO1;
- substitute_both (CONTEXT_SOLO, CONTEXT_NULL);
-
- kill_mmrest (CONTEXT_TWO);
- kill_mmrest (CONTEXT_SHARED);
-
- if (playing_state_ != SOLO1)
- {
- if (!solo_one_event_)
- {
- solo_one_event_ = new Stream_event (ly_symbol2scm ("solo-one-event"));
- solo_one_event_->unprotect ();
- }
-
- first_iter_->get_outlet ()->event_source ()->broadcast (solo_one_event_);
- }
- playing_state_ = SOLO1;
- }
-}
-
-void
-Part_combine_iterator::substitute_both (Outlet_type to1,
- Outlet_type to2)
-{
- Outlet_type tos[] = {to1, to2};
-
- Music_iterator *mis[] = {first_iter_, second_iter_};
-
- for (int i = 0; i < 2; i++)
- {
- for (int j = 0; j < NUM_OUTLETS; j++)
- if (j != tos[i])
- mis[i]->substitute_outlet (handles_[j].get_outlet (), handles_[tos[i]].get_outlet ());
- }
-
- for (int j = 0; j < NUM_OUTLETS; j++)
- {
- if (j != to1 && j != to2)
- kill_mmrest (j);
- }