X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-performer.cc;h=12c8601da3a3e23c85363e67d3a3fb17f0ad0780;hb=30270f615f32a6b93e7b09bf55d1b8a7d7aad7ca;hp=e9e5dd5ca77f1d53e22aa879a6e540b634f46147;hpb=1a66290a98e7de8d6d41485b5b71a9f7e1fe35c7;p=lilypond.git diff --git a/lily/note-performer.cc b/lily/note-performer.cc index e9e5dd5ca7..12c8601da3 100644 --- a/lily/note-performer.cc +++ b/lily/note-performer.cc @@ -3,55 +3,60 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997 Jan Nieuwenhuizen + (c) 1996, 1997--1998 Jan Nieuwenhuizen */ #include "note-performer.hh" -#include "translator.hh" -#include "input-translator.hh" #include "musical-request.hh" #include "audio-item.hh" #include "debug.hh" -IMPLEMENT_IS_TYPE_B1(Note_performer,Performer); +IMPLEMENT_IS_TYPE_B1 (Note_performer,Performer); +ADD_THIS_TRANSLATOR (Note_performer); -ADD_THIS_PERFORMER(Note_performer); - -Note_performer::Note_performer() +Note_performer::Note_performer () { - note_req_l_ = 0; + note_req_l_ = 0; } void -Note_performer::do_print() const +Note_performer::do_print () const { #ifndef NPRINT - if ( note_req_l_) { - note_req_l_->print(); - } + if (note_req_l_) + note_req_l_->print (); #endif } void -Note_performer::process_requests() +Note_performer::do_process_requests () { - // this is _really_ braindead, but it generates some output - if ( !note_req_l_ || !note_req_l_->melodic() || !note_req_l_->rhythmic ()) - return; + // this is _really_ braindead, but it generates some output + if (!note_req_l_ || !note_req_l_->access_Melodic_req () || !note_req_l_->access_Rhythmic_req ()) + return; + + int transposing_i = 0; + //urg + Scalar prop = get_property ("transposing"); + if (!prop.empty_b () && prop.isnum_b ()) + transposing_i = prop; + - play (new Audio_note (note_req_l_) ); - note_req_l_ = 0; + play (new Audio_note (note_req_l_, transposing_i)); + + note_req_l_ = 0; } bool Note_performer::do_try_request (Request* req_l) { - if ( note_req_l_) - return false; - - if ( !req_l->musical() || !req_l->musical ()->note ()) - return false; - - note_req_l_ = req_l->musical()->melodic (); - return true; + if (note_req_l_) + return false; + + if (!req_l->access_Musical_req () || !req_l->access_Musical_req ()->access_Note_req ()) + return false; + + note_req_l_ = req_l->access_Musical_req ()->access_Melodic_req (); + + return true; }