]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/repeated-music.cc
release: 1.1.9
[lilypond.git] / lily / repeated-music.cc
index 8f51eaf519d37bc0d359488e6eed26523004e730..a3751c38cb4538501c766e029c2933cc344c1c7d 100644 (file)
@@ -11,7 +11,7 @@
 #include "musical-pitch.hh"
 
 //Repeated_music::Repeated_music (Music* r, int n, Music_list* a)
-Repeated_music::Repeated_music (Music* r, int n, Sequential_music* a)
+Repeated_music::Repeated_music (Music* r, int n, Music_sequence* a)
 {
   repeats_i_ = n;
   repeat_p_ = r;
@@ -29,7 +29,8 @@ Repeated_music::Repeated_music (Repeated_music const& s)
 {
   repeat_p_ = (s.repeat_p_) ? s.repeat_p_->clone () : 0;
   // urg?
-//  alternative_p_ = (Sequential_music*)(s.alternative_p_) ? s.alternative_p_->clone () : 0;
+//  alternative_p_ = (s.alternative_p_) ? dynamic_cast <Music_list*> (s.alternative_p_->clone ()) : 0;
+  alternative_p_ = (s.alternative_p_) ? dynamic_cast <Music_sequence*> (s.alternative_p_->clone ()) : 0;
 }
 
 void
@@ -61,3 +62,23 @@ Repeated_music::duration () const
   return m;
 }
 
+
+Musical_pitch
+Repeated_music::to_relative_octave (Musical_pitch p)
+{
+  p = repeat_p_->to_relative_octave (p);
+
+  p = alternative_p_->do_relative_octave (p, false); 
+  return p;
+  
+  /* ugh.  Should 
+     \relative c'' \repeat 2  { c4 } { < ... > }
+
+     and 
+     
+     \relative c'' \repeat 2  { c4 }
+     { { ...} }
+
+     behave differently?
+   */
+}