X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdefault-bar-line-engraver.cc;h=f3d1d595057499d390e02fe72f76357d3f075816;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=c5680c3089e8853d8b2764b0440f6c902f22a9e5;hpb=e18531db1f79fb685fbd16d6a2a67bf4b6c09915;p=lilypond.git diff --git a/lily/default-bar-line-engraver.cc b/lily/default-bar-line-engraver.cc index c5680c3089..f3d1d59505 100644 --- a/lily/default-bar-line-engraver.cc +++ b/lily/default-bar-line-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2010 Han-Wen Nienhuys + Copyright (C) 1997--2015 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 @@ -19,7 +19,6 @@ #include "engraver.hh" #include "context.hh" -#include "multi-measure-rest.hh" #include "grob.hh" #include "warn.hh" @@ -38,28 +37,36 @@ public: #include "translator.icc" +void +Default_bar_line_engraver::boot () +{ + +} + ADD_TRANSLATOR (Default_bar_line_engraver, - /* doc */ - "This engraver determines what kind of automatic bar lines" - " should be produced, and sets @code{whichBar} accordingly." - " It should be at the same level as @ref{Timing_translator}.", - - /* create */ - "", - - /* read */ - "automaticBars " - "barAlways " - "defaultBarType " - "measureLength " - "whichBar " - "measurePosition ", - - /* write */ - "automaticBars " - ); - -Default_bar_line_engraver::Default_bar_line_engraver () + /* doc */ + "This engraver determines what kind of automatic bar lines" + " should be produced, and sets @code{whichBar} accordingly." + " It should be at the same level as @ref{Timing_translator}.", + + /* create */ + "", + + /* read */ + "automaticBars " + "barAlways " + "defaultBarType " + "measureLength " + "whichBar " + "measurePosition " + "timing ", + + /* write */ + "" + ); + +Default_bar_line_engraver::Default_bar_line_engraver (Context *c) + : Engraver (c) { last_moment_.main_part_ = Rational (-1); } @@ -77,18 +84,19 @@ Default_bar_line_engraver::start_translation_timestep () Moment mp = measure_position (context ()); bool start_of_measure = (last_moment_.main_part_ != now.main_part_ - && !mp.main_part_); + && !mp.main_part_ + && to_boolean (get_property ("timing"))); if (!scm_is_string (which) && to_boolean (automatic_bars)) { SCM always = get_property ("barAlways"); if ((start_of_measure && last_moment_.main_part_ >= Moment (0)) - || to_boolean (always)) - { - /* should this work, or be junked? See input/bugs/no-bars.ly */ - which = get_property ("defaultBarType"); - } + || to_boolean (always)) + { + /* should this work, or be junked? See input/bugs/no-bars.ly */ + which = get_property ("defaultBarType"); + } } context ()->set_property ("whichBar", which);