]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/repeat-engraver.hh
e3d6f9ef3ad4320250fb55323c2db4a53e2f4a44
[lilypond.git] / lily / include / repeat-engraver.hh
1 /*
2   repeat-engraver.hh -- declare Repeat_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8
9 #ifndef REPEAT_ENGRAVER_HH
10 #define REPEAT_ENGRAVER_HH
11
12 #include "engraver.hh"
13
14 /**
15   Generate repeat-bars |: :| for repeated-music
16   */
17 class Repeat_engraver : public Engraver 
18 {
19 public:
20   Repeat_engraver ();
21   VIRTUAL_COPY_CONS(Translator);
22   
23 protected:
24   virtual void acknowledge_element (Score_element_info i);
25   virtual void do_removal_processing ();
26   virtual bool do_try_music (Music *req_l);
27   virtual void do_process_requests();
28   virtual void do_pre_move_processing();
29   virtual void do_post_move_processing();
30
31 private:
32   Link_array<Repeated_music> repeated_music_arr_;
33   Link_array<Music> alternative_music_arr_;
34   Link_array<Bar> bar_p_arr_;
35   Link_array<Volta_spanner> volta_p_arr_;
36   Array<Moment> stop_mom_arr_;
37   Array<Moment> alternative_start_mom_arr_;
38   Array<Moment> alternative_stop_mom_arr_;
39 };
40
41 #endif // REPEAT_ENGRAVER_HH
42