#include "translator.icc"
-using std::string;
-using std::vector;
-
class Page_turn_event
{
public:
return ret;
}
- Real new_pen = std::max (penalty_, penalty.penalty_);
+ Real new_pen = max (penalty_, penalty.penalty_);
if (duration_[LEFT] < penalty.duration_[LEFT])
ret.push_back (Page_turn_event (duration_[LEFT], penalty.duration_[LEFT], permission_, penalty_));
Grob *breakable_column (Page_turn_event const &);
protected:
- DECLARE_TRANSLATOR_LISTENER (break);
- DECLARE_ACKNOWLEDGER (note_head);
+ void listen_break (Stream_event *);
+ void acknowledge_note_head (Grob_info);
public:
TRANSLATOR_DECLARATIONS (Page_turn_engraver);
void finalize ();
};
-Page_turn_engraver::Page_turn_engraver ()
+Page_turn_engraver::Page_turn_engraver (Context *c)
+ : Engraver (c)
{
repeat_begin_ = Moment (-1);
repeat_begin_rest_length_ = 0;
Grob *
Page_turn_engraver::breakable_column (Page_turn_event const &brk)
{
- vsize start = lower_bound (breakable_moments_, brk.duration_[LEFT], std::less<Rational> ());
- vsize end = upper_bound (breakable_moments_, brk.duration_[RIGHT], std::less<Rational> ());
+ vsize start = lower_bound (breakable_moments_, brk.duration_[LEFT], less<Rational> ());
+ vsize end = upper_bound (breakable_moments_, brk.duration_[RIGHT], less<Rational> ());
if (start == breakable_moments_.size ())
return NULL;
note_end_ = now_mom () + dur_ptr->get_length ();
}
-IMPLEMENT_TRANSLATOR_LISTENER (Page_turn_engraver, break);
void
Page_turn_engraver::listen_break (Stream_event *ev)
{
if (pc)
{
SCM perm = max_permission (pc->get_property ("page-turn-permission"), brk.permission_);
- Real pen = std::min (robust_scm2double (pc->get_property ("page-turn-penalty"), infinity_f), brk.penalty_);
+ Real pen = min (robust_scm2double (pc->get_property ("page-turn-penalty"), infinity_f), brk.penalty_);
pc->set_property ("page-turn-permission", perm);
pc->set_property ("page-turn-penalty", scm_from_double (pen));
}
}
}
-ADD_ACKNOWLEDGER (Page_turn_engraver, note_head);
+
+void
+Page_turn_engraver::boot ()
+{
+ ADD_LISTENER (Page_turn_engraver, break);
+ ADD_ACKNOWLEDGER (Page_turn_engraver, note_head);
+}
ADD_TRANSLATOR (Page_turn_engraver,
/* doc */