]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/performer.hh
release: 0.1.8
[lilypond.git] / lily / include / performer.hh
1 /*
2   performer.hh -- declare Performer
3
4   (c) 1996, 1997 Han-Wen Nienhuys <hanwen@stack.nl>
5                  Jan Nieuwenhuizen <jan@digicash.com>
6  */
7
8 #ifndef PERFORMER_HH
9 #define PERFORMER_HH
10
11 #include "lily-proto.hh"
12 #include "varray.hh"
13 #include "request.hh"
14 #include "score-elem-info.hh"
15 #include "staff-info.hh"
16
17 /**
18   Convert a music definition into a audio representation.
19   A baseclass
20  */
21 class Performer {
22     bool init_b_;
23 public:
24     DECLARE_MY_RUNTIME_TYPEINFO;
25     Performer_group_performer* daddy_perf_l_;
26
27     Performer();
28     virtual ~Performer();
29
30     void print() const;
31     virtual void process_requests();
32
33     virtual bool try_request (Request* req_l);
34
35     virtual void do_removal_processing();
36     void creation_processing();
37
38 protected:
39     virtual void do_creation_processing();
40     virtual bool do_try_request (Request*);
41     virtual int get_tempo_i() const;
42     virtual void do_print() const;
43     virtual void play (Audio_element * elem_p );
44 };
45
46 #include "global-performers.hh"
47
48 #endif // PERFORMER_HH