]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/score-performer.hh
826abeec95b8c0ec8f314e6e6903da3182508637
[lilypond.git] / lily / include / score-performer.hh
1 /*
2   score-performer.hh -- declare Score_performer
3
4   (c) 1996--2007 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 "moment.hh"
12 #include "performer-group.hh"
13
14 /**
15    Top level performer. Completely takes care of MIDI output
16 */
17 class Score_performer : public Performer_group
18 {
19 public:
20   VIRTUAL_COPY_CONSTRUCTOR (Translator_group, Score_performer);
21   Performance *performance_;
22
23   ~Score_performer ();
24   Score_performer ();
25
26 protected:
27   DECLARE_LISTENER (finish);
28   DECLARE_LISTENER (prepare);
29   DECLARE_LISTENER (one_time_step);
30
31   /* Engraver_group_engraver interface */
32   virtual void connect_to_context (Context *);
33   virtual void disconnect_from_context ();
34   virtual void initialize ();
35   virtual void announce_element (Audio_element_info);
36   virtual void derived_mark () const;
37   virtual void acknowledge_audio_elements ();
38 private:
39   void header (Midi_stream &);
40
41   Audio_column *audio_column_;
42   bool skipping_;
43   Moment skip_start_mom_;
44   Moment offset_mom_;
45 };
46
47 #endif // SCORE_PERFORMER_HH