+/*
+ 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
{
- return Music_sequence::maximum_length (get_mus_property ("elements"));
+ return Music_sequence::maximum_length (get_property ("elements"));
}
Moment
Simultaneous_music::start_mom () const
{
- return Music_sequence::minimum_start (get_mus_property ("elements"));
+ return Music_sequence::minimum_start (get_property ("elements"));
}
-Simultaneous_music::Simultaneous_music()
+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))
+ Pitch retval = music_list_to_relative (music_list (), p, false);
+ if (lily_1_8_relative)
{
- if (Music *m = unsmob_music (ly_car (s)))
- {
- last = m->to_relative_octave (last);
- if (!count ++)
- first = last;
- }
- }
+ Pitch retval_1_8 = music_list_to_relative (music_list (), p, true);
+ if (retval_1_8 != retval)
+ lily_1_8_compatibility_used = true;
- if (count && first != last)
- {
- String str = _("Changing relative definition causes pitch change.");
- str += "\nWas: " + first.to_string ()
- + " -- now returning: " + last.to_string () + "\n";
-
- origin()->warning (str);
+ retval = retval_1_8;
}
- return last;
+ return retval;
}
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);
+
+ADD_MUSIC (Event_chord);