Spanner * finished_cresc_p_;
Spanner * cresc_p_;
- Dynamic_script_req* script_req_l_;
+ Text_script_req* script_req_l_;
Span_req * current_cresc_req_;
Drul_array<Span_req*> accepted_spanreqs_drul_;
bool
Dynamic_engraver::do_try_music (Music * m)
{
- if (Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (m))
+ if (dynamic_cast <Text_script_req*> (m)
+ && m->get_mus_property ("text-type") == ly_symbol2scm ("dynamic"))
{
- script_req_l_ = d;
+ script_req_l_ = dynamic_cast<Text_script_req*> (m);
return true;
}
else if (Span_req* s = dynamic_cast <Span_req*> (m))
Axis_group_interface::set_interface (line_spanner_);
Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
- Request * rq = accepted_spanreqs_drul_[START];
- if (script_req_l_) rq = script_req_l_ ;
+ Music * rq = accepted_spanreqs_drul_[START];
+ if (script_req_l_)
+ rq = script_req_l_ ;
announce_element (line_spanner_, rq);
virtual void do_pre_move_processing ();
private:
- Dynamic_script_req* script_req_l_;
+ Music* script_req_l_;
Audio_dynamic* audio_p_;
};
{
if (!script_req_l_)
{
- if(Dynamic_script_req* d = dynamic_cast <Dynamic_script_req*> (r))
+ if( dynamic_cast <Text_script_req*> (r)
+ && r->get_mus_property ("text-type") == ly_symbol2scm ("dynamic"))
{
- script_req_l_ = d;
+ script_req_l_ = r;
return true;
}
}
virtual bool do_equal_b (Request const*) const;
};
-class Dynamic_script_req : public Script_req
-{
-protected:
- VIRTUAL_COPY_CONS (Music);
-};
/// request which has some kind of pitch
struct Melodic_req :virtual Request
class Script_req : public virtual Request
{
public:
- Direction dir_;
- void set_direction (Direction d ) { dir_ = d; }
- Direction get_direction () const { return dir_; }
+ void set_direction (Direction d);
+ Direction get_direction () const;
VIRTUAL_COPY_CONS(Music);
Script_req ();
{
set_mus_property ("type", ly_symbol2scm ("request"));
}
+
+void
+Script_req::set_direction (Direction d)
+{
+ set_mus_property ("direction", gh_int2scm (d));
+}
+
+Direction
+Script_req::get_direction () const
+{
+ SCM d = get_mus_property ("direction");
+
+ return (isdir_b (d)) ? to_dir (d) : CENTER;
+}
+
+