]> git.donarmstrong.com Git - lilypond.git/blob - lily/repeated-music.cc
release: 1.1.7
[lilypond.git] / lily / repeated-music.cc
1 /*   
2   repeated-music.cc --  implement Repeated_music
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
7   
8  */
9
10 #include "repeated-music.hh"
11 #include "musical-pitch.hh"
12
13 //Repeated_music::Repeated_music (Music* r, int n, Music_list* a)
14 Repeated_music::Repeated_music (Music* r, int n, Sequential_music* a)
15 {
16   repeats_i_ = n;
17   repeat_p_ = r;
18   alternative_p_ = a;
19 }
20
21 Repeated_music::~Repeated_music ()
22 {
23   delete repeat_p_;
24   delete alternative_p_;
25 }
26
27 Repeated_music::Repeated_music (Repeated_music const& s)
28   : Music (s)
29 {
30   repeat_p_ = (s.repeat_p_) ? s.repeat_p_->clone () : 0;
31   // urg?
32 //  alternative_p_ = (Sequential_music*)(s.alternative_p_) ? s.alternative_p_->clone () : 0;
33 }
34
35 void
36 Repeated_music::do_print () const
37 {
38   if (repeat_p_)
39     repeat_p_->print ();
40   if (alternative_p_)
41     alternative_p_->print ();
42 }
43
44 void
45 Repeated_music::transpose (Musical_pitch p)
46 {
47   if (repeat_p_)
48     repeat_p_->transpose (p);
49   if (alternative_p_)
50     alternative_p_->transpose (p);
51 }
52
53 Moment
54 Repeated_music::duration () const
55 {
56   Moment m;
57   if (repeat_p_)
58     m += repeat_p_->duration ();
59   if (alternative_p_)
60     m += alternative_p_->duration ();
61   return m;
62 }
63