/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2001--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2001--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
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);
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 ()));
+ }
}
}