]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/repeat-engraver.hh
release: 1.1.43
[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--1999 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
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
30 private:
31   Link_array<New_repeated_music> repeated_music_arr_;
32   Link_array<Music> alternative_music_arr_;
33
34   Array<bool> bar_b_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   Array<String> alternative_str_arr_;
40 };
41
42 #endif // REPEAT_ENGRAVER_HH
43