*/
#include "debug.hh"
#include "dimensions.hh"
-#include "dimension-cache.hh"
#include "crescendo.hh"
#include "musical-request.hh"
-#include "lookup.hh"
-#include "paper-def.hh"
#include "paper-column.hh"
-#include "staff-symbol.hh"
#include "note-column.hh"
#include "item.hh"
#include "side-position-interface.hh"
#include "engraver.hh"
-#include "stem.hh"
-#include "rhythmic-head.hh"
#include "group-interface.hh"
#include "directional-element-interface.hh"
-#include "staff-symbol-referencer.hh"
#include "translator-group.hh"
#include "axis-group-interface.hh"
class Dynamic_engraver : public Engraver
{
Item * text_p_;
- Crescendo * finished_cresc_p_;
- Crescendo * cresc_p_;
+ Spanner * finished_cresc_p_;
+ Spanner * cresc_p_;
Text_script_req* text_req_l_;
{
line_spanner_ = new Spanner (get_property ("basicDynamicLineSpannerProperties"));
- Side_position_interface (line_spanner_).set_axis (Y_AXIS);
- Axis_group_interface (line_spanner_).set_interface ();
- Axis_group_interface (line_spanner_).set_axes (Y_AXIS, Y_AXIS);
- announce_element (Score_element_info
- (line_spanner_,
- text_req_l_ ? text_req_l_ : accepted_spanreqs_drul_[START]));
+ Side_position::set_axis (line_spanner_, Y_AXIS);
+ Axis_group_interface::set_interface (line_spanner_);
+ Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
+ announce_element (line_spanner_,
+ text_req_l_ ? text_req_l_ : accepted_spanreqs_drul_[START]);
}
}
if (Direction d=text_req_l_->get_direction ())
Directional_element_interface (line_spanner_).set (d);
- Axis_group_interface (line_spanner_).add_element (text_p_);
+ Axis_group_interface::add_element (line_spanner_, text_p_);
- text_p_->add_offset_callback (Side_position_interface::aligned_on_self,
+ text_p_->add_offset_callback (Side_position::aligned_on_self,
Y_AXIS);
- announce_element (Score_element_info (text_p_, text_req_l_));
+ announce_element (text_p_, text_req_l_);
}
if (accepted_spanreqs_drul_[STOP])
{
if (!cresc_p_)
{
- accepted_spanreqs_drul_[STOP]->warning
+ accepted_spanreqs_drul_[STOP]->origin ()->warning
(_ ("can't find start of (de)crescendo"));
}
else
{
if (current_cresc_req_)
{
- accepted_spanreqs_drul_[START]->warning
+ accepted_spanreqs_drul_[START]->origin ()->warning
(current_cresc_req_->span_dir_ == 1
?
_ ("already have a crescendo")
else
{
current_cresc_req_ = accepted_spanreqs_drul_[START];
- cresc_p_ = new Crescendo (get_property ("basicCrescendoProperties"));
+ cresc_p_ = new Spanner (get_property ("basicCrescendoProperties"));
+ Crescendo::set_interface (cresc_p_);
cresc_p_->set_elt_property
("grow-direction",
gh_int2scm ((accepted_spanreqs_drul_[START]->span_type_str_ == "crescendo")
if (text_p_)
{
index_set_cell (cresc_p_->get_elt_property ("dynamic-drul"),
- LEFT, SCM_BOOL_T);
+ LEFT, text_p_->self_scm ());
if (finished_cresc_p_)
index_set_cell (finished_cresc_p_->get_elt_property ("dynamic-drul"),
- RIGHT, SCM_BOOL_T);
+ RIGHT, text_p_->self_scm ());
}
- Axis_group_interface (line_spanner_).add_element (cresc_p_);
+ Axis_group_interface::add_element (line_spanner_, cresc_p_);
cresc_p_->set_elt_property ("self-alignment-Y", gh_int2scm (0));
cresc_p_->add_offset_callback
- (Side_position_interface::aligned_on_self, Y_AXIS);
- announce_element (Score_element_info (cresc_p_, accepted_spanreqs_drul_[START]));
+ (Side_position::aligned_on_self, Y_AXIS);
+ announce_element (cresc_p_, accepted_spanreqs_drul_[START]);
}
}
}
{
typeset_element (cresc_p_ );
finished_cresc_p_ = cresc_p_;
- current_cresc_req_->warning (_ ("unterminated (de)crescendo"));
+ current_cresc_req_->origin ()->warning (_ ("unterminated (de)crescendo"));
}
if (line_spanner_)
{
}
if (finished_line_spanner_)
{
- Side_position_interface (finished_line_spanner_).add_staff_support ();
+ Side_position::add_staff_support (finished_line_spanner_);
if (!finished_line_spanner_->get_bound (LEFT))
{
void
Dynamic_engraver::acknowledge_element (Score_element_info i)
{
- if (Note_column* n = dynamic_cast<Note_column*> (i.elem_l_))
+ if (Note_column::has_interface (i.elem_l_))
{
if (line_spanner_)
{
- Side_position_interface (line_spanner_).add_support (n);
- add_bound_item (line_spanner_,n);
+ Side_position::add_support (line_spanner_,i.elem_l_);
+ add_bound_item (line_spanner_,dynamic_cast<Item*>(i.elem_l_));
}
}
}