X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdefault-bar-line-engraver.cc;h=f3d1d595057499d390e02fe72f76357d3f075816;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=4e65fe6c838510f4d60e95810263eaebdaaada1e;hpb=358d6e99ada8019268ade9ba9080b2d0d88eeb7a;p=lilypond.git diff --git a/lily/default-bar-line-engraver.cc b/lily/default-bar-line-engraver.cc index 4e65fe6c83..f3d1d59505 100644 --- a/lily/default-bar-line-engraver.cc +++ b/lily/default-bar-line-engraver.cc @@ -1,14 +1,24 @@ /* - timing-engraver.cc -- implement Default_bar_line_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997--2006 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "engraver.hh" #include "context.hh" -#include "multi-measure-rest.hh" #include "grob.hh" #include "warn.hh" @@ -27,26 +37,36 @@ public: #include "translator.icc" +void +Default_bar_line_engraver::boot () +{ + +} + ADD_TRANSLATOR (Default_bar_line_engraver, - "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); } @@ -64,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);