#include "translator.icc"
-using std::vector;
-
struct Rhythmic_tuple
{
Grob_info info_;
TRANSLATOR_DECLARATIONS (Spacing_engraver);
protected:
- DECLARE_ACKNOWLEDGER (staff_spacing);
- DECLARE_ACKNOWLEDGER (note_spacing);
- DECLARE_ACKNOWLEDGER (rhythmic_head);
- DECLARE_ACKNOWLEDGER (rhythmic_grob);
- DECLARE_TRANSLATOR_LISTENER (spacing_section);
+ void acknowledge_staff_spacing (Grob_info);
+ void acknowledge_note_spacing (Grob_info);
+ void acknowledge_rhythmic_head (Grob_info);
+ void acknowledge_rhythmic_grob (Grob_info);
+ void listen_spacing_section (Stream_event *);
void start_translation_timestep ();
void stop_translation_timestep ();
void stop_spanner ();
};
-Spacing_engraver::Spacing_engraver ()
+Spacing_engraver::Spacing_engraver (Context *c)
+ : Engraver (c)
{
spacing_ = 0;
start_section_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Spacing_engraver, spacing_section);
void
Spacing_engraver::listen_spacing_section (Stream_event *ev)
{
if (ev)
{
Moment m = get_event_length (ev);
- shortest_playing = std::min (shortest_playing, m);
+ shortest_playing = min (shortest_playing, m);
}
}
Moment starter;
Moment m = get_event_length (now_durations_[i].info_.event_cause ());
if (m.to_bool ())
{
- starter = std::min (starter, m);
+ starter = min (starter, m);
playing_durations_.insert (now_durations_[i]);
}
}
now_durations_.clear ();
- shortest_playing = std::min (shortest_playing, starter);
+ shortest_playing = min (shortest_playing, starter);
assert (starter.to_bool ());
SCM sh = shortest_playing.smobbed_copy ();
stopped_durations_.push_back (playing_durations_.get ());
}
-ADD_ACKNOWLEDGER (Spacing_engraver, staff_spacing);
-ADD_ACKNOWLEDGER (Spacing_engraver, note_spacing);
-ADD_ACKNOWLEDGER (Spacing_engraver, rhythmic_head);
-ADD_ACKNOWLEDGER (Spacing_engraver, rhythmic_grob);
+
+void
+Spacing_engraver::boot ()
+{
+ ADD_LISTENER (Spacing_engraver, spacing_section);
+ ADD_ACKNOWLEDGER (Spacing_engraver, staff_spacing);
+ ADD_ACKNOWLEDGER (Spacing_engraver, note_spacing);
+ ADD_ACKNOWLEDGER (Spacing_engraver, rhythmic_head);
+ ADD_ACKNOWLEDGER (Spacing_engraver, rhythmic_grob);
+}
ADD_TRANSLATOR (Spacing_engraver,
/* doc */