]> git.donarmstrong.com Git - lilypond.git/blob - lily/key-performer.cc
patch::: 1.3.108.jcn3
[lilypond.git] / lily / key-performer.cc
1 /*
2   key-performer.cc -- implement Key_performer
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #include "key-performer.hh"
10 #include "command-request.hh"
11 #include "audio-item.hh"
12
13
14 ADD_THIS_TRANSLATOR (Key_performer);
15
16 Key_performer::Key_performer ()
17 {
18   key_req_l_ = 0;
19   audio_p_ = 0;
20 }
21
22 Key_performer::~Key_performer ()
23 {
24 }
25
26 void
27 Key_performer::deprecated_process_music ()
28 {
29   if (key_req_l_ &&
30       gh_list_p (key_req_l_->get_mus_property ("pitch-alist")))
31     {
32       audio_p_ = new Audio_key (); // *key_req_l_->key_);
33       Audio_element_info info (audio_p_, key_req_l_);
34       announce_element (info);
35       key_req_l_ = 0;
36     }
37 }
38
39 void
40 Key_performer::do_pre_move_processing ()
41 {
42   if (audio_p_)
43     {
44       play_element (audio_p_);
45       audio_p_ = 0;
46     }
47 }
48
49 bool
50 Key_performer::do_try_music (Music* req_l)
51 {
52   if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
53     {
54       if (key_req_l_)
55         warning (_ ("FIXME: key change merge"));
56
57       key_req_l_ = kc;
58       return true;
59     }
60
61   return false;
62 }
63