X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnew-lyric-combine-music-iterator.cc;h=0144e9e5e1ed7426cb9882fbda687d5465fb7700;hb=205203e856ba125f43b9caa66fc7177db16a6db9;hp=81ecd8172f7010bf91766cd4ca2089ff443fb0d3;hpb=332da9f4d25f9f63a3222efc87fae06b0c7abbdd;p=lilypond.git diff --git a/lily/new-lyric-combine-music-iterator.cc b/lily/new-lyric-combine-music-iterator.cc index 81ecd8172f..0144e9e5e1 100644 --- a/lily/new-lyric-combine-music-iterator.cc +++ b/lily/new-lyric-combine-music-iterator.cc @@ -1,13 +1,12 @@ /* new-lyric-combine-iterator.cc -- implement New_lyric_combine_music_iterator - + source file of the GNU LilyPond music typesetter - - (c) 2004 Han-Wen Nienhuys + + (c) 2004--2005 Han-Wen Nienhuys */ #include "context.hh" -#include "lyric-combine-music.hh" #include "event.hh" #include "grob.hh" #include "music-iterator.hh" @@ -16,34 +15,34 @@ class New_lyric_combine_music_iterator : public Music_iterator { public: New_lyric_combine_music_iterator (); - New_lyric_combine_music_iterator (New_lyric_combine_music_iterator const&src); + New_lyric_combine_music_iterator (New_lyric_combine_music_iterator const &src); DECLARE_SCHEME_CALLBACK (constructor, ()); protected: virtual void construct_children (); virtual Moment pending_moment () const; - virtual void do_quit (); + virtual void do_quit (); virtual void process (Moment); virtual Music_iterator *try_music_in_children (Music *) const; virtual bool run_always ()const; virtual bool ok () const; virtual void derived_mark () const; - virtual void derived_substitute (Context *,Context *); + virtual void derived_substitute (Context *, Context *); private: - bool start_new_syllable () ; + bool start_new_syllable (); void find_voice (); bool music_found_; bool made_association_; - Context * lyrics_context_; - Context * music_context_; + Context *lyrics_context_; + Context *music_context_; SCM lyricsto_voice_name_; - - Music_iterator * lyric_iter_; + + Music_iterator *lyric_iter_; }; /* Ugh, why static? - */ +*/ static Music *busy_ev; static Music *start_ev; static Music *melisma_playing_ev; @@ -58,7 +57,7 @@ New_lyric_combine_music_iterator::New_lyric_combine_music_iterator () /* Ugh. out of place here. - */ + */ if (!busy_ev) { busy_ev @@ -74,20 +73,20 @@ bool New_lyric_combine_music_iterator::start_new_syllable () { bool b = music_context_->try_music (busy_ev); - + if (!b) return false; if (!lyrics_context_) return false; - + if (!to_boolean (lyrics_context_->get_property ("ignoreMelismata"))) { bool m = music_context_->try_music (melisma_playing_ev); if (m) return false; } - + return true; } @@ -97,7 +96,7 @@ New_lyric_combine_music_iterator::pending_moment () const Moment m; m.set_infinite (1); - + return m; } @@ -128,14 +127,13 @@ void New_lyric_combine_music_iterator::derived_substitute (Context *f, Context *t) { if (lyric_iter_) - lyric_iter_->substitute_outlet (f,t); + lyric_iter_->substitute_outlet (f, t); if (lyrics_context_ && lyrics_context_ == f) lyrics_context_ = t; if (music_context_ && music_context_ == f) - music_context_ = t; + music_context_ = t; } - void New_lyric_combine_music_iterator::construct_children () { @@ -144,9 +142,8 @@ New_lyric_combine_music_iterator::construct_children () lyricsto_voice_name_ = get_music ()->get_property ("associated-context"); - find_voice (); - + if (lyric_iter_) lyrics_context_ = find_context_below (lyric_iter_->get_outlet (), ly_symbol2scm ("Lyrics"), ""); @@ -155,7 +152,7 @@ New_lyric_combine_music_iterator::construct_children () We do not create a Lyrics context, because the user might create one with a different name, and then we will not find that one. - */ + */ } void @@ -168,16 +165,16 @@ New_lyric_combine_music_iterator::find_voice () voice_name = running; if (scm_is_string (voice_name) - && (!music_context_ || ly_scm2string (voice_name) != music_context_->id_string ())) + && (!music_context_ || ly_scm2string (voice_name) != music_context_->id_string ())) { /* (spaghettini). - + Need to set associatedVoiceContext again - */ + */ if (music_context_) made_association_ = false; - + Context *t = get_outlet (); while (t && t->get_parent_context ()) t = t->get_parent_context (); @@ -185,7 +182,6 @@ New_lyric_combine_music_iterator::find_voice () String name = ly_scm2string (voice_name); Context *voice = find_context_below (t, ly_symbol2scm ("Voice"), name); - if (voice) music_context_ = voice; } @@ -194,7 +190,7 @@ New_lyric_combine_music_iterator::find_voice () { if (!made_association_) { - made_association_ = true; + made_association_ = true; lyrics_context_->set_property ("associatedVoiceContext", music_context_->self_scm ()); } @@ -202,31 +198,31 @@ New_lyric_combine_music_iterator::find_voice () } void -New_lyric_combine_music_iterator::process (Moment ) +New_lyric_combine_music_iterator::process (Moment) { find_voice (); if (!music_context_) - return ; - + return; + if (!music_context_->get_parent_context ()) { /* The melody has died. We die too. - */ + */ if (lyrics_context_) lyrics_context_->unset_property (ly_symbol2scm ("associatedVoiceContext")); lyric_iter_ = 0; music_context_ = 0; } - + if (music_context_ && start_new_syllable () && lyric_iter_->ok ()) { Moment m = lyric_iter_->pending_moment (); lyric_iter_->process (m); - music_found_ = true; + music_found_ = true; } } @@ -249,13 +245,10 @@ New_lyric_combine_music_iterator::do_quit () lyric_iter_->quit (); } - - -Music_iterator* +Music_iterator * New_lyric_combine_music_iterator::try_music_in_children (Music *m) const { return lyric_iter_->try_music (m); } - IMPLEMENT_CTOR_CALLBACK (New_lyric_combine_music_iterator);