X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-performer.cc;h=a7d2907daeddb2e70b60030612f75a13c2a65abd;hb=0817e0513d1016ff22a633b6fee20ddba2a062f2;hp=d63d0c442b52110376b1f745083b792ba9c05963;hpb=a4d7106c75b325441063fd9ba9c4131979784aa5;p=lilypond.git diff --git a/lily/note-performer.cc b/lily/note-performer.cc index d63d0c442b..a7d2907dae 100644 --- a/lily/note-performer.cc +++ b/lily/note-performer.cc @@ -3,34 +3,45 @@ source file of the GNU LilyPond music typesetter - (c) 1996--2000 Jan Nieuwenhuizen + (c) 1996--2001 Jan Nieuwenhuizen */ -#include "note-performer.hh" +#include "performer.hh" #include "musical-request.hh" #include "audio-item.hh" #include "audio-column.hh" #include "global-translator.hh" #include "debug.hh" - -ADD_THIS_TRANSLATOR (Note_performer); - -Note_performer::Note_performer () -{ -} - - +/** +Convert reqs to audio notes. +*/ +class Note_performer : public Performer { +public: + TRANSLATOR_DECLARATIONS(Note_performer); + +protected: + virtual bool try_music (Music *req_l) ; + + virtual void stop_translation_timestep (); + virtual void create_audio_elements (); + Global_translator* global_translator_l (); + +private: + Array note_req_l_arr_; + Array note_p_arr_; + Array delayed_p_arr_; +}; void -Note_performer::deprecated_process_music () +Note_performer::create_audio_elements () { if (note_req_l_arr_.size ()) { int transposing_i = 0; //urg SCM prop = get_property ("transposing"); - if (gh_number_p(prop)) + if (gh_number_p (prop)) transposing_i = gh_scm2int (prop); while (note_req_l_arr_.size ()) @@ -42,14 +53,10 @@ Note_performer::deprecated_process_music () announce_element (info); note_p_arr_.push (p); } + note_req_l_arr_.clear (); } } -void -Note_performer::process_acknowledged () -{ -} - Global_translator* Note_performer::global_translator_l () { @@ -67,7 +74,7 @@ Note_performer::global_translator_l () void -Note_performer::do_pre_move_processing () +Note_performer::stop_translation_timestep () { // why don't grace notes show up here? @@ -76,7 +83,8 @@ Note_performer::do_pre_move_processing () for (int i=0; i < note_p_arr_.size (); i++) { Audio_note* n = note_p_arr_[i]; - if (Moment m= n->delayed_until_mom_) + Moment m= n->delayed_until_mom_; + if (m.to_bool ()) { global_l->add_moment_to_process (m); delayed_p_arr_.push (n); @@ -107,7 +115,7 @@ Note_performer::do_pre_move_processing () } bool -Note_performer::do_try_music (Music* req_l) +Note_performer::try_music (Music* req_l) { if (Note_req *nr = dynamic_cast (req_l)) { @@ -116,3 +124,9 @@ Note_performer::do_try_music (Music* req_l) } return false; } + +ENTER_DESCRIPTION(Note_performer,"","","","",""); + +Note_performer::Note_performer() +{ +}