X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fevent-chord-iterator.cc;h=92b385fe57651eff555d4b74b3ba9cf5c5a13e76;hb=750b714488c5af6eae22d07163bba8b554734ac6;hp=e588574020e06e93b310ebc702f2aa92f5d91ce0;hpb=ba858880848d6aca1de4401d185860eb2017a01c;p=lilypond.git diff --git a/lily/event-chord-iterator.cc b/lily/event-chord-iterator.cc index e588574020..92b385fe57 100644 --- a/lily/event-chord-iterator.cc +++ b/lily/event-chord-iterator.cc @@ -1,60 +1,60 @@ /* - event-chord-iterator.cc -- implement Event_chord_iterator + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997--2004 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 "event-chord-iterator.hh" + #include "context.hh" +#include "dispatcher.hh" +#include "duration.hh" +#include "input.hh" +#include "international.hh" +#include "music.hh" #include "warn.hh" -#include "event-chord-iterator.hh" -#include "music-list.hh" -#include "event.hh" Event_chord_iterator::Event_chord_iterator () { } -Context * -Event_chord_iterator::get_req_translator () -{ - assert (get_outlet ()); - if (get_outlet ()->is_bottom_context ()) - return get_outlet (); - - set_translator (get_outlet ()->get_default_interpreter ()); - return get_outlet (); -} - void Event_chord_iterator::construct_children () { Simple_music_iterator::construct_children (); - get_req_translator (); -} - -Event_chord* -Event_chord_iterator::get_elt () const -{ - return (Event_chord*) get_music (); + descend_to_bottom_context (); } - void Event_chord_iterator::process (Moment m) { if (last_processed_mom_ < Moment (0)) { - for (SCM s = dynamic_cast (get_music ())->music_list (); - ly_c_pair_p (s); s = ly_cdr (s)) - { - Music *mus = unsmob_music (ly_car (s)); - - bool gotcha = try_music (mus); - if (!gotcha) - mus->origin ()->warning (_f ("Junking event: `%s'", mus->name ())); - } + for (SCM s = get_music ()->get_property ("elements"); + scm_is_pair (s); s = scm_cdr (s)) + { + Music *mus = unsmob (scm_car (s)); + report_event (mus); + } + for (SCM s = get_music ()->get_property ("articulations"); + scm_is_pair (s); s = scm_cdr (s)) + { + Music *mus = unsmob (scm_car (s)); + report_event (mus); + } } Simple_music_iterator::process (m); }