X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fperformer.hh;h=82b4ce50cc2b66bf04e228ebc74aacd476ce64f4;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=61fd1d2aba40890deeb0d39bad10ceb590534192;hpb=106e5978fe2fa568bbc6649bc8fcf1134307373a;p=lilypond.git diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 61fd1d2aba..82b4ce50cc 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -1,34 +1,50 @@ /* - performer.hh -- declare Performer + This file is part of LilyPond, the GNU music typesetter. - (c) 1996, 1997--1998 Han-Wen Nienhuys - Jan Nieuwenhuizen - */ + Copyright (C) 1996--2015 Han-Wen Nienhuys + Jan Nieuwenhuizen + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef PERFORMER_HH #define PERFORMER_HH -#include "lily-proto.hh" -#include "array.hh" -#include "request.hh" -#include "score-element-info.hh" -#include "staff-info.hh" +#include "audio-element-info.hh" +#include "grob-info.hh" #include "translator.hh" -/** - Convert a music definition into a audio representation. - A baseclass - */ -class Performer : public virtual Translator{ +/* Convert a music definition into an audio representation. + A baseclass. */ +class Performer : public Translator +{ public: - TRANSLATOR_CLONE(Performer); - DECLARE_MY_RUNTIME_TYPEINFO; - Performer_group_performer* daddy_perf_l() const; + VIRTUAL_COPY_CONSTRUCTOR (Translator, Performer); + friend class Performer_group; + Performer_group *get_daddy_performer () const; + static Performer *unsmob (SCM perf) { + return dynamic_cast (Translator::unsmob (perf)); + } + static bool is_smob (SCM perf) { + return Translator::is_smob (perf) && unsmob (perf); + } + protected: - virtual int get_tempo_i() const; - virtual void play (Audio_element * elem_p ); - Performer * access_Performer () { return this; } + virtual void announce_element (Audio_element_info); + virtual void acknowledge_audio_element (Audio_element_info); + virtual void create_audio_elements (); }; +#endif /* PERFORMER_HH */ -#endif // PERFORMER_HH