X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsimultaneous-music-iterator.cc;h=3b891e8e79f1e978f6ab82ded8ff45f9e37a4bb2;hb=efbdfc972f673abbd19fa6b177edb3398ccf804f;hp=475e46a47da3944bd294e6f949f3be454db791d1;hpb=545092a25d8ca41dc90b87482474b3719f7130a9;p=lilypond.git diff --git a/lily/simultaneous-music-iterator.cc b/lily/simultaneous-music-iterator.cc index 475e46a47d..3b891e8e79 100644 --- a/lily/simultaneous-music-iterator.cc +++ b/lily/simultaneous-music-iterator.cc @@ -1,9 +1,20 @@ /* - simultaneous-music-iterator.cc -- implement Simultaneous_music_iterator + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2012 Han-Wen Nienhuys - (c) 1997--2005 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "simultaneous-music-iterator.hh" @@ -48,26 +59,26 @@ Simultaneous_music_iterator::construct_children () Music_iterator *mi = unsmob_iterator (scm_iter); /* if create_separate_contexts_ is set, create a new context with the - number number as name */ + number number as name */ - SCM name = ly_symbol2scm (get_outlet ()->context_name ().to_str0 ()); - Context *t = (j && create_separate_contexts_) - ? get_outlet ()->find_create_context (name, to_string (j), SCM_EOL) - : get_outlet (); + SCM name = ly_symbol2scm (get_outlet ()->context_name ().c_str ()); + Context *c = (j && create_separate_contexts_) + ? get_outlet ()->find_create_context (name, to_string (j), SCM_EOL) + : get_outlet (); - if (!t) - t = get_outlet (); + if (!c) + c = get_outlet (); - mi->init_translator (mus, t); + mi->init_context (mus, c); mi->construct_children (); if (mi->ok ()) - { - *tail = scm_cons (scm_iter, *tail); - tail = SCM_CDRLOC (*tail); - } + { + *tail = scm_cons (scm_iter, *tail); + tail = SCM_CDRLOC (*tail); + } else - mi->quit (); + mi->quit (); } } @@ -79,15 +90,15 @@ Simultaneous_music_iterator::process (Moment until) { Music_iterator *i = unsmob_iterator (scm_car (*proc)); if (i->run_always () - || i->pending_moment () == until) - i->process (until); + || i->pending_moment () == until) + i->process (until); if (!i->ok ()) - { - i->quit (); - *proc = scm_cdr (*proc); - } + { + i->quit (); + *proc = scm_cdr (*proc); + } else - proc = SCM_CDRLOC (*proc); + proc = SCM_CDRLOC (*proc); } } @@ -114,9 +125,9 @@ Simultaneous_music_iterator::ok () const { Music_iterator *it = unsmob_iterator (scm_car (s)); if (!it->run_always ()) - return true; + return true; else - run_always_ok = run_always_ok || it->ok (); + run_always_ok = run_always_ok || it->ok (); } return run_always_ok; } @@ -128,20 +139,11 @@ Simultaneous_music_iterator::run_always () const { Music_iterator *it = unsmob_iterator (scm_car (s)); if (it->run_always ()) - return true; + return true; } return false; } -Music_iterator * -Simultaneous_music_iterator::try_music_in_children (Music *m) const -{ - Music_iterator *b = 0; - for (SCM s = children_list_; !b && scm_is_pair (s); s = scm_cdr (s)) - b = unsmob_iterator (scm_car (s))->try_music (m); - return b; -} - void Simultaneous_music_iterator::do_quit () {