]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/global-translator.hh
release: 0.1.11
[lilypond.git] / lily / include / global-translator.hh
1 /*
2   global-translator.hh -- declare Global_translator
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef GLOBAL_TRANSLATOR_HH
11 #define GLOBAL_TRANSLATOR_HH
12
13 #include "translator.hh"
14 #include "pqueue.hh"
15
16 class Global_translator : public virtual Translator {
17   PQueue<Moment> extra_mom_pq_;
18 public:
19   Moment last_mom_;
20   Global_translator();
21   int moments_left_i() const;
22   void modify_next (Moment&);
23   void add_moment_to_process (Moment);
24
25   virtual Music_output *get_output_p ();     
26   virtual void prepare (Moment);
27   virtual void process() {}
28   virtual void finish() {}
29   virtual void start() {}
30     
31   DECLARE_MY_RUNTIME_TYPEINFO;
32 protected:
33     
34   virtual Global_translator *global_l() { return this; }
35   virtual int depth_i() const;
36   virtual Translator *ancestor_l (int);
37 };
38
39
40
41 #endif // GLOBAL_TRANSLATOR_HH