X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fkey-performer.cc;h=26dbe93a8dec76763045dbb5d5b6c7d5f622e2bd;hb=9f3572d98bb948c9689cd1f75401a029451fa001;hp=df98520a1ac8bb1acc8d87f014ce113473b821b8;hpb=04265f11d1f21416ccebd2dcaa1d903dc781b36e;p=lilypond.git diff --git a/lily/key-performer.cc b/lily/key-performer.cc index df98520a1a..26dbe93a8d 100644 --- a/lily/key-performer.cc +++ b/lily/key-performer.cc @@ -6,14 +6,11 @@ (c) 1997--2006 Jan Nieuwenhuizen */ -#include "audio-item.hh" #include "music-sequence.hh" +#include "audio-item.hh" #include "performer.hh" -#include "stream-event.hh" #include "warn.hh" -#include "translator.icc" - class Key_performer : public Performer { public: @@ -21,12 +18,12 @@ public: ~Key_performer (); protected: + virtual bool try_music (Music *ev); void process_music (); void stop_translation_timestep (); - DECLARE_TRANSLATOR_LISTENER (key_change); private: - Stream_event *key_ev_; + Music *key_ev_; Audio_key *audio_; }; @@ -83,18 +80,22 @@ Key_performer::stop_translation_timestep () { if (audio_) { + play_element (audio_); audio_ = 0; } } -IMPLEMENT_TRANSLATOR_LISTENER (Key_performer, key_change); -void -Key_performer::listen_key_change (Stream_event *ev) +bool +Key_performer::try_music (Music *ev) { if (!key_ev_) key_ev_ = ev; + + return true; } +#include "translator.icc" + ADD_TRANSLATOR (Key_performer, "", "", "key-change-event",