X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbar-check-iterator.cc;h=8ac67109bf20281ef05cb173537f6132292e13b5;hb=644ed77f9c0165e22290549660e71ff3ead573d5;hp=fe203f16ec8c3518934a1656722322e27ea883df;hpb=0d6207e894224577f9879f4036ef8cab4925c4c7;p=lilypond.git diff --git a/lily/bar-check-iterator.cc b/lily/bar-check-iterator.cc index fe203f16ec..8ac67109bf 100644 --- a/lily/bar-check-iterator.cc +++ b/lily/bar-check-iterator.cc @@ -1,24 +1,26 @@ -/* +/* bar-check-iterator.cc -- implement Bar_check_iterator source file of the GNU LilyPond music typesetter - (c) 2001--2005 Han-Wen Nienhuys + (c) 2001--2009 Han-Wen Nienhuys */ -#include "simple-music-iterator.hh" -#include "event.hh" #include "context.hh" +#include "input.hh" +#include "international.hh" +#include "music.hh" +#include "simple-music-iterator.hh" /* 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 { public: virtual void process (Moment); - Bar_check_iterator ( ); + Bar_check_iterator (); DECLARE_SCHEME_CALLBACK (constructor, ()); }; @@ -36,19 +38,24 @@ Bar_check_iterator::process (Moment m) { Context *tr = get_outlet (); + SCM check = tr->get_property ("ignoreBarChecks"); + if (to_boolean (check)) + return; + SCM mp = tr->get_property ("measurePosition"); SCM sync = tr->get_property ("barCheckSynchronize"); - Moment * where = unsmob_moment (mp); + Moment *where = unsmob_moment (mp); if (!where) return; - + if (where->main_part_) { bool warn = true; if (to_boolean (sync)) { - tr = tr->where_defined (ly_symbol2scm ("measurePosition")); + SCM mp; + tr = tr->where_defined (ly_symbol2scm ("measurePosition"), &mp); Moment zero; tr->set_property ("measurePosition", zero.smobbed_copy ()); } @@ -63,8 +70,8 @@ Bar_check_iterator::process (Moment m) } if (warn) - get_music ()->origin ()->warning (_f ("barcheck failed at: %s", - where->to_string ())); + get_music ()->origin ()->warning (_f ("barcheck failed at: %s", + where->to_string ())); } } -} +}