]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/beam-engraver.hh
044cfaddb7f6460c25d63fd35624f9c76997bc38
[lilypond.git] / lily / include / beam-engraver.hh
1 /*   
2   beam-engraver.hh -- declare Beam_engraver
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #ifndef BEAM_ENGRAVER_HH
11 #define BEAM_ENGRAVER_HH
12
13 #include "engraver.hh"
14 #include "drul-array.hh"
15
16 class Beam_engraver : public Engraver {
17   Drul_array<Span_req*> reqs_drul_;
18
19   Beam *finished_beam_p_;
20   Beam *beam_p_;
21   Span_req * prev_start_req_;
22
23   Beaming_info_list * beam_info_p_;
24   Beaming_info_list * finished_beam_info_p_;  
25
26   /// location  within measure where beam started.
27   Moment beam_start_location_;
28
29   /// moment (global time) where beam started.
30   Moment beam_start_mom_;
31   
32   void typeset_beam ();
33 protected:
34   virtual void do_pre_move_processing ();
35   virtual void do_post_move_processing ();
36   virtual void do_removal_processing ();
37   virtual void acknowledge_element (Score_element_info);
38   virtual bool do_try_music (Music*);
39   virtual void do_process_requests ();
40 public:
41   Beam_engraver ();
42   VIRTUAL_COPY_CONS (Translator);
43 };
44
45 #endif /* BEAM_ENGRAVER_HH */
46