/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
Jan Nieuwenhuizen <janneke@gnu.org>
LilyPond is free software: you can redistribute it and/or modify
class Completion_rest_engraver : public Engraver
{
- vector<Item*> rests_;
- vector<Item*> prev_rests_;
- vector<Stream_event*> rest_events_;
+ vector<Item *> rests_;
+ vector<Item *> prev_rests_;
+ vector<Stream_event *> rest_events_;
Moment rest_end_mom_;
bool is_first_;
Rational left_to_do_;
Rational factor_;
Moment next_barline_moment ();
- Item *make_rest (Stream_event*);
+ Item *make_rest (Stream_event *);
public:
TRANSLATOR_DECLARATIONS (Completion_rest_engraver);
Completion_rest_engraver::listen_rest (Stream_event *ev)
{
rest_events_.push_back (ev);
-
+
is_first_ = true;
Moment now = now_mom ();
Moment musiclen = get_event_length (ev, now);
return (*l - *e);
}
-Item*
+Item *
Completion_rest_engraver::make_rest (Stream_event *ev)
{
Item *rest = make_item ("Rest", ev->self_scm ());
int pos = p->steps ();
SCM c0 = get_property ("middleCPosition");
if (scm_is_number (c0))
- pos += scm_to_int (c0);
+ pos += scm_to_int (c0);
rest->set_property ("staff-position", scm_from_int (pos));
}
if (left_to_do_)
{
/*
- rest that rest_dur may be strictly less than left_to_do_
- (say, if left_to_do_ == 5/8)
+ rest that rest_dur may be strictly less than left_to_do_
+ (say, if left_to_do_ == 5/8)
*/
if (factor_.denominator () == 1 && factor_ > Rational (1, 1))
- rest_dur = Duration (left_to_do_, false);
+ rest_dur = Duration (left_to_do_, false);
else
- rest_dur = Duration (left_to_do_ / factor_, false).compressed (factor_);
+ rest_dur = Duration (left_to_do_ / factor_, false).compressed (factor_);
appearance = Duration (left_to_do_, false);
}
else
if (nb.main_part_ && nb < rest_dur.get_length ())
{
if (factor_.denominator () == 1 && factor_ > Rational (1, 1))
- rest_dur = Duration (nb.main_part_, false);
+ rest_dur = Duration (nb.main_part_, false);
else
- rest_dur = Duration (nb.main_part_ / factor_, false).compressed (factor_);
+ rest_dur = Duration (nb.main_part_ / factor_, false).compressed (factor_);
}
do_nothing_until_ = now.main_part_ + rest_dur.get_length ();
Stream_event *event = rest_events_[i];
if (need_clone)
- event = event->clone ();
+ event = event->clone ();
SCM pits = rest_events_[i]->get_property ("pitch");
event->set_property ("pitch", pits);
Item *rest = make_rest (event);
if (need_clone)
- event->unprotect ();
+ event->unprotect ();
rests_.push_back (rest);
}
-
+
left_to_do_ -= rest_dur.get_length ();
if (left_to_do_)
- get_global_context ()->add_moment_to_process (now.main_part_ + rest_dur.get_length());
+ get_global_context ()->add_moment_to_process (now.main_part_ + rest_dur.get_length ());
/*
don't do complicated arithmetic with grace rests.
*/
prev_rests_.clear ();
}
context ()->set_property ("restCompletionBusy",
- ly_bool2scm (rest_events_.size ()));
+ ly_bool2scm (rest_events_.size ()));
}
Completion_rest_engraver::Completion_rest_engraver ()
}
ADD_TRANSLATOR (Completion_rest_engraver,
- /* doc */
- "This engraver replaces @code{Rest_engraver}. It plays"
- " some trickery to break long rests into the next measure."
- ,
- /* create */
- "Rest "
- "Dots "
- ,
- /* read */
- "middleCPosition "
- "measurePosition "
- "measureLength "
- ,
- /* write */
- "restCompletionBusy "
- );
+ /* doc */
+ "This engraver replaces @code{Rest_engraver}. It plays"
+ " some trickery to break long rests into the next measure.",
+
+ /* create */
+ "Rest ",
+
+ /* read */
+ "middleCPosition "
+ "measurePosition "
+ "measureLength ",
+
+ /* write */
+ "restCompletionBusy "
+ );