lilypond-1.1.21
[lilypond.git] / lily / note-performer.cc
blobbda50b6188a6e9712b9087c286b84e51ff7a24bf
1 /*
2 note-performer.cc -- implement Note_performer
4 source file of the GNU LilyPond music typesetter
6 (c) 1996, 1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
9 #include "note-performer.hh"
10 #include "musical-request.hh"
11 #include "audio-item.hh"
12 #include "debug.hh"
15 ADD_THIS_TRANSLATOR (Note_performer);
17 Note_performer::Note_performer ()
19 note_req_l_ = 0;
22 void
23 Note_performer::do_print () const
25 #ifndef NPRINT
26 if (note_req_l_)
27 note_req_l_->print ();
28 #endif
31 void
32 Note_performer::do_process_requests ()
34 if (note_req_l_)
36 int transposing_i = 0;
37 //urg
38 Scalar prop = get_property ("transposing");
39 if (!prop.empty_b () && prop.isnum_b ())
40 transposing_i = prop;
43 play (new Audio_note (note_req_l_, transposing_i));
45 note_req_l_ = 0;
49 bool
50 Note_performer::do_try_music (Music* req_l)
52 if (note_req_l_)
53 return false;
55 if (Note_req *nr = dynamic_cast <Note_req *> (req_l))
57 note_req_l_ = nr;
58 return true;
60 return false;