X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flyric-performer.cc;h=e07fe0f4fe1df5dfd3495d024f494861ff69da71;hb=5aff48d7a9c07e8c79a3c792ce4d034a127e3beb;hp=f55844044c4db3bf140d6e69066c635ca7951d51;hpb=cec6dfa6bf0fb931eb7f42b1ee44ca2ec19a9f34;p=lilypond.git diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc index f55844044c..e07fe0f4fe 100644 --- a/lily/lyric-performer.cc +++ b/lily/lyric-performer.cc @@ -3,52 +3,60 @@ source file of the GNU LilyPond music typesetter - (c) 1997 Jan Nieuwenhuizen + (c) 1997--2000 Jan Nieuwenhuizen */ #include "lyric-performer.hh" -#include "text-def.hh" #include "musical-request.hh" #include "audio-item.hh" +ADD_THIS_TRANSLATOR (Lyric_performer); - -IMPLEMENT_IS_TYPE_B1(Lyric_performer,Performer); -ADD_THIS_TRANSLATOR(Lyric_performer); - -Lyric_performer::Lyric_performer() -{ -} - -Lyric_performer::~Lyric_performer() +Lyric_performer::Lyric_performer () { + audio_p_ = 0; } void -Lyric_performer::do_print() const +Lyric_performer::do_print () const { #ifndef NPRINT - if (lreq_arr_.size()) - lreq_arr_[ 0 ]->print(); + if (lreq_arr_.size ()) + lreq_arr_[0]->print (); #endif } void -Lyric_performer::do_process_requests() +Lyric_performer::do_process_music () { - if (lreq_arr_.size() && lreq_arr_[ 0 ]->tdef_p_->text_str_.length_i()) - play (new Audio_text (Audio_text::LYRIC, lreq_arr_[ 0 ]->tdef_p_->text_str_)); + if (lreq_arr_.size () && lreq_arr_[0]->text_str_.length_i ()) + { + audio_p_ = new Audio_text (Audio_text::LYRIC, lreq_arr_[0]->text_str_); + Audio_element_info info (audio_p_, lreq_arr_[0]); + announce_element (info); + } lreq_arr_.clear(); } -bool -Lyric_performer::do_try_request (Request* req_l) +void +Lyric_performer::do_pre_move_processing () { - Musical_req* m_l = req_l->musical(); - if (!m_l || ! m_l->lreq_l()) - return false; - lreq_arr_.push (m_l->lreq_l()); + if (audio_p_) + { + play_element (audio_p_); + audio_p_ = 0; + } + lreq_arr_.clear(); +} - return true; +bool +Lyric_performer::do_try_music (Music* req_l) +{ + if (Lyric_req *lr = dynamic_cast (req_l)) + { + lreq_arr_.push (lr); + return true; + } + return false; }