source file of the GNU LilyPond music typesetter
-(c) 2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+(c) 2002--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
class Unfolded_repeat_iterator : public Sequential_iterator
{
public:
- static SCM constructor_cxx_function;
+ DECLARE_SCHEME_CALLBACK(constructor, ());
VIRTUAL_COPY_CONS (Music_iterator);
protected:
virtual SCM get_music_list () const;
class Volta_repeat_iterator : public Sequential_iterator
{
public:
- static SCM constructor_cxx_function;
+ DECLARE_SCHEME_CALLBACK(constructor, ());
VIRTUAL_COPY_CONS (Music_iterator);
Volta_repeat_iterator();
virtual void next_element (bool);
virtual void construct_children();
virtual void process (Moment);
-
+
+ bool first_time_;
int alt_count_;
int rep_count_;
int done_count_;
Volta_repeat_iterator::Volta_repeat_iterator()
{
done_count_ = alt_count_ = rep_count_= 0;
+ first_time_ = true;
}
SCM
if (done_count_ <= alt_count_)
add_repeat_command (scm_list_n (ly_symbol2scm ("volta"),
- ly_str02scm (repstr.to_str0 ()), SCM_UNDEFINED));
+ scm_makfrom0str (repstr.to_str0 ()), SCM_UNDEFINED));
}
else
{
void
Volta_repeat_iterator::process (Moment m)
{
- if (!m.to_bool ())
+ if (first_time_)
{
add_repeat_command (ly_symbol2scm ("start-repeat"));
+ first_time_ = false;
}
Sequential_iterator::process(m);
}