]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/simultaneous-music.cc
2003 -> 2004
[lilypond.git] / lily / simultaneous-music.cc
index 77c3d89d0670a2a1bd575b61a9f6d04872ffb524..011734b9661e677ae13d12180b1782828dff6eab 100644 (file)
@@ -1,7 +1,17 @@
+/*   
+  simultaneous-music.cc --  implement Simultaneous_music
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1998--2004 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
 #include "input.hh"
 #include "moment.hh"
 #include "pitch.hh"
 #include "music-list.hh"
+#include "scm-option.hh"
 
 Moment
 Simultaneous_music::get_length () const
@@ -20,37 +30,13 @@ Simultaneous_music::Simultaneous_music()
 
 }
 
-/*
-  Cut & paste from Music_sequence, (ugh) , but we must add an error
-  message.
- */
 Pitch
 Simultaneous_music::to_relative_octave (Pitch p)
 {
-  Pitch first;
-  int count=0;
-
-  Pitch last = p;
-  for (SCM s = music_list (); gh_pair_p (s);  s = ly_cdr (s))
-    {
-      if (Music *m = unsmob_music (ly_car (s)))
-       {
-         last = m->to_relative_octave (last);
-         if (!count ++)
-           first = last;
-       }
-    }
-
-  if (count && first != last)
-    {
-      String str = _("Changing relative definition may cause octave change.");
-      str += "\nWas: " +  first.to_string ()
-       + " -- now returning: " + last.to_string () + "\n";
-      
-      origin()->warning (str);
-    }
-
-  return last;
+  if (lily_1_8_relative)
+    lily_1_8_compatibility_used = true;
+  
+  return music_list_to_relative (music_list(), p, lily_1_8_relative);
 }
 
 ADD_MUSIC (Simultaneous_music);
@@ -58,6 +44,7 @@ ADD_MUSIC (Simultaneous_music);
 Pitch
 Event_chord::to_relative_octave (Pitch p)
 {
-  return do_relative_octave (p, true);
+  return music_list_to_relative (music_list (), p, true);
 }
+
 ADD_MUSIC(Event_chord);