2 dynamic-reg.cc -- implement Dynamic_register
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "dynamic-reg.hh"
10 #include "musicalrequest.hh"
11 #include "text-item.hh"
13 #include "paper-def.hh"
15 Dynamic_register::Dynamic_register()
18 post_move_processing();
23 Dynamic_register::post_move_processing()
29 Dynamic_register::try_request(Request * r)
31 Musical_req * m = r->musical();
32 if (!m || !m->dynamic())
34 assert(!dynamic_req_l_);
35 dynamic_req_l_ = m->dynamic();
39 Dynamic_register::process_requests()
42 if (dynamic_req_l_->absdynamic()) {
43 Text_def * td_p = new Text_def;
45 String loud =Dynamic_req::loudness_str(
46 dynamic_req_l_->absdynamic()->loudness_);
48 td_p->text_str_ = paper()->lookup_l()->dynamic(loud).tex;
51 td_p->style_str_ = "dynamic";
53 dynamic_p_ = new Text_item(td_p, 10 ); // TODO!
54 announce_element(Staff_elem_info(dynamic_p_, dynamic_req_l_));
60 Dynamic_register::pre_move_processing()
63 typeset_element(dynamic_p_);
69 Dynamic_register::acceptable_request_b(Request*r)const
71 Musical_req * m = r->musical();
72 return (m && m->dynamic());
76 Dynamic_register::set_feature(Features i)
78 dir_i_ = i.direction_i_;