]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/score-performer.hh
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / include / score-performer.hh
1 /*
2   score-performer.hh -- declare Score_performer
3
4   (c) 1996--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
5   Jan Nieuwenhuizen <janneke@gnu.org>
6 */
7
8 #ifndef SCORE_PERFORMER_HH
9 #define SCORE_PERFORMER_HH
10
11 #include "performer-group.hh"
12 #include "score-translator.hh"
13
14 /**
15    Top level performer. Completely takes care of MIDI output
16 */
17 class Score_performer : public Score_translator,
18                         public virtual Performer_group
19 {
20 public:
21   VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Score_performer);
22   ~Score_performer ();
23   Performance *performance_;
24
25   Score_performer ();
26 protected:
27   virtual void prepare (Moment mom);
28   virtual void finish ();
29   virtual void one_time_step ();
30   virtual void initialize ();
31   virtual void announce_element (Audio_element_info);
32   virtual int get_tempo () const;
33   virtual void play_element (Audio_element *p);
34   virtual SCM get_output ();
35   virtual void derived_mark () const;
36 private:
37   void header (Midi_stream &);
38
39   Audio_column *audio_column_;
40   bool skipping_;
41   Moment skip_start_mom_;
42   Moment offset_mom_;
43 };
44
45 #endif // SCORE_PERFORMER_HH