lilypond-1.3.65
[lilypond.git] / lily / key-performer.cc
blobb55210a4487d60e37f598f9e37f47e2acf81b4a2
1 /*
2 key-performer.cc -- implement Key_performer
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
9 #include "key-performer.hh"
10 #include "command-request.hh"
11 #include "audio-item.hh"
14 ADD_THIS_TRANSLATOR (Key_performer);
16 Key_performer::Key_performer ()
18 key_req_l_ = 0;
19 audio_p_ = 0;
22 Key_performer::~Key_performer ()
26 void
27 Key_performer::do_process_music ()
29 if (key_req_l_ && key_req_l_->pitch_alist_ != SCM_UNDEFINED)
31 audio_p_ = new Audio_key (); // *key_req_l_->key_);
32 Audio_element_info info (audio_p_, key_req_l_);
33 announce_element (info);
34 key_req_l_ = 0;
38 void
39 Key_performer::do_pre_move_processing ()
41 if (audio_p_)
43 play_element (audio_p_);
44 audio_p_ = 0;
48 bool
49 Key_performer::do_try_music (Music* req_l)
51 if (Key_change_req *kc = dynamic_cast <Key_change_req *> (req_l))
53 if (key_req_l_)
54 warning (_ ("FIXME: key change merge"));
56 key_req_l_ = kc;
57 return true;
60 return false;