X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Frhythmic-music-iterator.cc;h=cff4353f40d235cc81ea1d3ed2f7b76739b5f2a7;hb=77267b700c377fd170abcbf4863728937038eb5e;hp=1246e3854272ec622ef10e1766a9bb1024e2be96;hpb=2f0c6eb19208485a86d3416db3f3640a1d54752a;p=lilypond.git diff --git a/lily/rhythmic-music-iterator.cc b/lily/rhythmic-music-iterator.cc index 1246e38542..cff4353f40 100644 --- a/lily/rhythmic-music-iterator.cc +++ b/lily/rhythmic-music-iterator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2012 Mike Solomon + Copyright (C) 2012 Mike Solomon LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -59,23 +59,19 @@ Rhythmic_music_iterator::process (Moment m) SCM unlistened = SCM_EOL; for (; scm_is_pair (arts); arts = scm_cdr (arts)) { - if (scm_is_true - (scm_call_2 - (ly_lily_module_constant ("any"), - ly_lily_module_constant ("ly:is-listened-event-class"), - scm_call_1 - (ly_lily_module_constant ("ly:make-event-class"), - unsmob_stream_event (scm_car (arts)) - ->get_property ("class"))))) - listened = scm_cons (scm_car (arts), listened); + SCM art = scm_car (arts); + + if (c->event_source ()->is_listened_class + (unsmob (art)->get_property ("class"))) + listened = scm_cons (art, listened); else - unlistened = scm_cons (scm_car (arts), unlistened); + unlistened = scm_cons (art, unlistened); } ev->set_property ("articulations", scm_reverse_x (unlistened, SCM_EOL)); c->event_source ()->broadcast (ev); arts = scm_reverse_x (listened, SCM_EOL); for (; scm_is_pair (arts); arts = scm_cdr (arts)) - c->event_source ()->broadcast (unsmob_stream_event (scm_car (arts))); + c->event_source ()->broadcast (unsmob (scm_car (arts))); } else c->event_source ()->broadcast (ev);