X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbar-check-iterator.cc;h=ea4794897d3353f9fddae5c607ffe1f33fd78898;hb=bfdebcb93bebe820c2d5fd6c1bed5c589536472c;hp=09f06b1fc2435e900095d06ce738462f55e7ec45;hpb=1c846b2c2348b4e0ca4a3c2e8fb267047ba2d203;p=lilypond.git diff --git a/lily/bar-check-iterator.cc b/lily/bar-check-iterator.cc index 09f06b1fc2..ea4794897d 100644 --- a/lily/bar-check-iterator.cc +++ b/lily/bar-check-iterator.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2001--2011 Han-Wen Nienhuys + Copyright (C) 2001--2012 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 @@ -27,7 +27,7 @@ Check bar checks. We do this outside the engravers so that you can race through the score using skipTypesetting to correct durations. */ -class Bar_check_iterator : Simple_music_iterator +class Bar_check_iterator : Music_iterator { public: virtual void process (Moment); @@ -44,45 +44,45 @@ Bar_check_iterator::Bar_check_iterator () void Bar_check_iterator::process (Moment m) { - Simple_music_iterator::process (m); + Music_iterator::process (m); if (!m.to_bool ()) { Context *tr = get_outlet (); SCM check = tr->get_property ("ignoreBarChecks"); if (to_boolean (check)) - return; + return; SCM mp = tr->get_property ("measurePosition"); SCM sync = tr->get_property ("barCheckSynchronize"); Moment *where = unsmob_moment (mp); if (!where) - return; + return; if (where->main_part_) - { - bool warn = true; - if (to_boolean (sync)) - { - SCM mp; - tr = tr->where_defined (ly_symbol2scm ("measurePosition"), &mp); - Moment zero; - tr->set_property ("measurePosition", zero.smobbed_copy ()); - } - else - { - SCM lf = tr->get_property ("barCheckLastFail"); - if (unsmob_moment (lf) - && *unsmob_moment (lf) == *where) - warn = false; - else - tr->set_property ("barCheckLastFail", mp); - } + { + bool warn = true; + if (to_boolean (sync)) + { + SCM mp; + tr = tr->where_defined (ly_symbol2scm ("measurePosition"), &mp); + Moment zero; + tr->set_property ("measurePosition", zero.smobbed_copy ()); + } + else + { + SCM lf = tr->get_property ("barCheckLastFail"); + if (unsmob_moment (lf) + && *unsmob_moment (lf) == *where) + warn = false; + else + tr->set_property ("barCheckLastFail", mp); + } - if (warn) - get_music ()->origin ()->warning (_f ("barcheck failed at: %s", - where->to_string ())); - } + if (warn) + get_music ()->origin ()->warning (_f ("barcheck failed at: %s", + where->to_string ())); + } } }