]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/performer-group-performer.hh
* Documentation/topdocs/NEWS.tely (Top): add entry for percent
[lilypond.git] / lily / include / performer-group-performer.hh
index b8c03cccefa42f2fcf5c8d2a42db989e4e269820..2a8d9a8d4e1b1033e82508642538749bd0c7c013 100644 (file)
@@ -1,27 +1,36 @@
 /*
   performer-group-performer.hh -- declare Performer_group_performer
 
-  (c) 1996,  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-                 Jan Nieuwenhuizen <janneke@gnu.org>
- */
+  (c) 1996--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  Jan Nieuwenhuizen <janneke@gnu.org>
+*/
 
 #ifndef PERFORMER_GROUP_PERFORMER_HH
 #define PERFORMER_GROUP_PERFORMER_HH
 
-#include "lily-proto.hh"
-#include "parray.hh"
 #include "performer.hh"
 #include "translator-group.hh"
 
-/**
-  Group a number of performers. Usually delegates everything to its contents.
-*/
+typedef void (Performer:: *Performer_method) (void);
 
-class Performer_group_performer : public Performer, public virtual Translator_group {
+class Performer_group_performer : public virtual Translator_group
+{
 public:
-  VIRTUAL_COPY_CONS(Translator);
-  
+  VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Performer_group_performer);
+
+  void do_announces ();
+  virtual void announce_element (Audio_element_info);
+  virtual void play_element (Audio_element *p);
+  virtual int get_tempo () const;
+
+protected:
+  Array<Audio_element_info> announce_infos_;
+
+private:
+  void acknowledge_audio_elements ();
 };
 
+void performer_each (SCM list, Performer_method method);
+
 #endif // PERFORMER_GROUP_PERFORMER_HH