/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2008--2012 Han-Wen Nienhuys <hanwen@lilypond.org>
+ Copyright (C) 2008--2014 Han-Wen Nienhuys <hanwen@lilypond.org>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "translator.icc"
-class New_dynamic_engraver : public Engraver
+class Dynamic_engraver : public Engraver
{
- TRANSLATOR_DECLARATIONS (New_dynamic_engraver);
+ TRANSLATOR_DECLARATIONS (Dynamic_engraver);
DECLARE_ACKNOWLEDGER (note_column);
DECLARE_TRANSLATOR_LISTENER (absolute_dynamic);
DECLARE_TRANSLATOR_LISTENER (span_dynamic);
bool end_new_spanner_;
};
-New_dynamic_engraver::New_dynamic_engraver ()
+Dynamic_engraver::Dynamic_engraver ()
{
script_event_ = 0;
current_span_event_ = 0;
end_new_spanner_ = false;
}
-IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, absolute_dynamic);
+IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, absolute_dynamic);
void
-New_dynamic_engraver::listen_absolute_dynamic (Stream_event *ev)
+Dynamic_engraver::listen_absolute_dynamic (Stream_event *ev)
{
ASSIGN_EVENT_ONCE (script_event_, ev);
}
-IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, span_dynamic);
+IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, span_dynamic);
void
-New_dynamic_engraver::listen_span_dynamic (Stream_event *ev)
+Dynamic_engraver::listen_span_dynamic (Stream_event *ev)
{
Direction d = to_dir (ev->get_property ("span-direction"));
ASSIGN_EVENT_ONCE (accepted_spanevents_drul_[d], ev);
}
-IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, break_span);
+IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, break_span);
void
-New_dynamic_engraver::listen_break_span (Stream_event *event)
+Dynamic_engraver::listen_break_span (Stream_event *event)
{
if (event->in_event_class ("break-dynamic-span-event"))
{
}
SCM
-New_dynamic_engraver::get_property_setting (Stream_event *evt,
- char const *evprop,
- char const *ctxprop)
+Dynamic_engraver::get_property_setting (Stream_event *evt,
+ char const *evprop,
+ char const *ctxprop)
{
SCM spanner_type = evt->get_property (evprop);
if (spanner_type == SCM_EOL)
}
void
-New_dynamic_engraver::process_music ()
+Dynamic_engraver::process_music ()
{
if (current_spanner_
&& (accepted_spanevents_drul_[STOP]
}
void
-New_dynamic_engraver::stop_translation_timestep ()
+Dynamic_engraver::stop_translation_timestep ()
{
if (finished_spanner_ && !finished_spanner_->get_bound (RIGHT))
finished_spanner_
}
void
-New_dynamic_engraver::finalize ()
+Dynamic_engraver::finalize ()
{
if (current_spanner_
&& !current_spanner_->is_live ())
}
string
-New_dynamic_engraver::get_spanner_type (Stream_event *ev)
+Dynamic_engraver::get_spanner_type (Stream_event *ev)
{
string type;
SCM start_sym = scm_car (ev->get_property ("class"));
}
void
-New_dynamic_engraver::acknowledge_note_column (Grob_info info)
+Dynamic_engraver::acknowledge_note_column (Grob_info info)
{
if (script_ && !script_->get_parent (X_AXIS))
{
extract_grob_set (info.grob (), "note-heads", heads);
- Grob *stem = unsmob_grob (info.grob ()->get_object ("stem"));
/*
Spacing constraints may require dynamics to be aligned on rests,
so check for a rest if this note column has no note heads.
script_->set_parent (x_parent, X_AXIS);
Self_alignment_interface::set_center_parent (script_, X_AXIS);
}
- if (stem)
- Pointer_group_interface::add_grob (script_, ly_symbol2scm ("potential-X-colliding-grobs"), stem);
}
if (current_spanner_ && !current_spanner_->get_bound (LEFT))
finished_spanner_->set_bound (RIGHT, info.grob ());
}
-ADD_ACKNOWLEDGER (New_dynamic_engraver, note_column);
-ADD_TRANSLATOR (New_dynamic_engraver,
+ADD_ACKNOWLEDGER (Dynamic_engraver, note_column);
+ADD_TRANSLATOR (Dynamic_engraver,
/* doc */
"Create hairpins, dynamic texts and dynamic text spanners.",