X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext.cc;h=fedaeae5b065582b59f35e43ba592db653d796d6;hb=a6bd229f7fe1dc4a03478e14ccc0c0c66b225061;hp=2f23024e2d9d8700f113881c9955547e9997fc89;hpb=edf17353d89f4f6bd831466262402bb9151a26ca;p=lilypond.git diff --git a/lily/context.cc b/lily/context.cc index 2f23024e2d..fedaeae5b0 100644 --- a/lily/context.cc +++ b/lily/context.cc @@ -1,9 +1,20 @@ /* - context.cc -- implement Context + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2004--2010 Han-Wen Nienhuys - (c) 2004--2007 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 "context.hh" @@ -46,9 +57,8 @@ Context::check_removal () } } -Context::Context (Context const &src) +Context::Context (Context const & /* src */) { - (void) src; assert (false); } @@ -709,6 +719,21 @@ measure_position (Context const *context) return m; } +/* Finds the measure position after a note of length DUR that + begins at the current measure position. */ +Moment +measure_position (Context const *context, Duration const *dur) +{ + Moment pos = measure_position (context); + Rational dur_length = dur ? dur->get_length () : Rational (0); + + Moment end_pos = pos.grace_part_ < Rational(0) + ? Moment(pos.main_part_, pos.grace_part_ + dur_length) + : Moment(pos.main_part_ + dur_length, 0); + + return end_pos; +} + int measure_number (Context const *context) {