]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/global-translator.hh
release: 1.1.29
[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--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef GLOBAL_TRANSLATOR_HH
11 #define GLOBAL_TRANSLATOR_HH
12
13 #include "translator-group.hh"
14 #include "rational.hh"
15 #include "pqueue.hh"
16
17 class Global_translator : public virtual Translator_group{
18   PQueue<Moment> extra_mom_pq_;
19 public:
20   VIRTUAL_COPY_CONS(Translator);
21   Moment last_mom_;
22   Moment now_mom_;
23   Global_translator();
24
25   int moments_left_i() const;
26   void modify_next (Moment&);
27   void add_moment_to_process (Moment);
28
29   virtual Music_output *get_output_p ();     
30   virtual void prepare (Moment);
31   virtual void process() {}
32   virtual void finish() {}
33   virtual void start() {}
34
35   
36 protected:
37   virtual Moment now_mom () const;
38   virtual Global_translator *global_l() { return this; }
39 };
40
41
42
43 #endif // GLOBAL_TRANSLATOR_HH