X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpart-combine-iterator.cc;h=01039d66ab42ecd65372ccbcbd9eeccf4cbcf62b;hb=0adbc8b19405a3a383101abe7bc534e1e97ef441;hp=06449fb5dca228c13dd6a9daa0269cbce80c400e;hpb=af60e9b57f205a3c2e044ac8db351b42ef3e26ad;p=lilypond.git diff --git a/lily/part-combine-iterator.cc b/lily/part-combine-iterator.cc index 06449fb5dc..01039d66ab 100644 --- a/lily/part-combine-iterator.cc +++ b/lily/part-combine-iterator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2004--2012 Han-Wen Nienhuys + Copyright (C) 2004--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -224,8 +224,8 @@ Part_combine_iterator::kill_mmrest (int in) if (!mmrest_event_) { mmrest_event_ = new Stream_event - (handles_[in].get_context ()->make_event_class - (ly_symbol2scm ("multi-measure-rest-event"))); + (scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), + ly_symbol2scm ("multi-measure-rest-event"))); mmrest_event_->set_property ("duration", SCM_EOL); mmrest_event_->unprotect (); } @@ -256,15 +256,16 @@ Part_combine_iterator::unisono (bool silent) if (playing_state_ != UNISONO && newstate == UNISONO) { - Context *out = (last_playing_ == SOLO2 ? second_iter_ : first_iter_) - ->get_outlet (); if (!unisono_event_) { unisono_event_ = new Stream_event - (out->make_event_class (ly_symbol2scm ("unisono-event"))); + (scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), + ly_symbol2scm ("unisono-event"))); unisono_event_->unprotect (); } + Context *out = (last_playing_ == SOLO2 ? second_iter_ : first_iter_) + ->get_outlet (); out->event_source ()->broadcast (unisono_event_); playing_state_ = UNISONO; } @@ -290,8 +291,8 @@ Part_combine_iterator::solo1 () if (!solo_one_event_) { solo_one_event_ = new Stream_event - (first_iter_->get_outlet ()->make_event_class - (ly_symbol2scm ("solo-one-event"))); + (scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), + ly_symbol2scm ("solo-one-event"))); solo_one_event_->unprotect (); } @@ -317,8 +318,8 @@ Part_combine_iterator::solo2 () if (!solo_two_event_) { solo_two_event_ = new Stream_event - (second_iter_->get_outlet ()->make_event_class - (ly_symbol2scm ("solo-two-event"))); + (scm_call_1 (ly_lily_module_constant ("ly:make-event-class"), + ly_symbol2scm ("solo-two-event"))); solo_two_event_->unprotect (); } @@ -389,10 +390,10 @@ Part_combine_iterator::construct_children () SCM lst = get_music ()->get_property ("elements"); Context *one = handles_[CONTEXT_ONE].get_context (); set_context (one); - first_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_car (lst)))); + first_iter_ = Music_iterator::unsmob (get_iterator (Music::unsmob (scm_car (lst)))); Context *two = handles_[CONTEXT_TWO].get_context (); set_context (two); - second_iter_ = unsmob_iterator (get_iterator (unsmob_music (scm_cadr (lst)))); + second_iter_ = Music_iterator::unsmob (get_iterator (Music::unsmob (scm_cadr (lst)))); Context *shared = handles_[CONTEXT_SHARED].get_context (); set_context (shared); @@ -406,6 +407,7 @@ Part_combine_iterator::construct_children () "DynamicLineSpanner", "Tie", "Dots", + "MultiMeasureRest", "Rest", "Slur", "TextScript", @@ -431,11 +433,6 @@ Part_combine_iterator::construct_children () ly_symbol2scm ("horizontal-shift"), horizontalShiftOne_); execute_pushpop_property (two, ly_symbol2scm ("NoteColumn"), ly_symbol2scm ("horizontal-shift"), horizontalShiftTwo_); - /* Also handle MultiMeasureRest positions for voice 1/2 */ - execute_pushpop_property (one, ly_symbol2scm ("MultiMeasureRest"), - ly_symbol2scm ("staff-position"), scm_from_int (4)); - execute_pushpop_property (two, ly_symbol2scm ("MultiMeasureRest"), - ly_symbol2scm ("staff-position"), scm_from_int (-4)); } @@ -446,7 +443,7 @@ Part_combine_iterator::set_busy (SCM se) if (!notice_busy_) return; - Stream_event *e = unsmob_stream_event (se); + Stream_event *e = Stream_event::unsmob (se); if (e->in_event_class ("note-event") || e->in_event_class ("cluster-note-event")) busy_ = true; @@ -481,7 +478,7 @@ Part_combine_iterator::process (Moment m) for (; scm_is_pair (split_list_); split_list_ = scm_cdr (split_list_)) { - splitm = unsmob_moment (scm_caar (split_list_)); + splitm = Moment::unsmob (scm_caar (split_list_)); if (splitm && *splitm + start_moment_ > now) break;