*/
#include "repeated-music.hh"
-#include "music-wrapper.hh"
-#include "music-list.hh"
+#include "musical-pitch.hh"
-Repeated_music::Repeated_music (Music_wrapper *r, int n, Sequential_music* a)
+//Repeated_music::Repeated_music (Music* r, int n, Music_list* a)
+Repeated_music::Repeated_music (Music* r, int n, Music_sequence* a)
{
repeats_i_ = n;
repeat_p_ = r;
Repeated_music::Repeated_music (Repeated_music const& s)
: Music (s)
{
-#if 0
- // urg?
- repeat_p_ = (Music_wrapper*)(s.repeat_p_) ? s.repeat_p_->clone () : 0;
- alternative_p_ = (Sequential_music*)(s.alternative_p_) ? s.alternative_p_->clone () : 0;
-#endif
+ repeat_p_ = (s.repeat_p_) ? s.repeat_p_->clone () : 0;
+ // urg?
+// 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
m += alternative_p_->duration ();
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?
+ */
+}