#define DSTREAM_HH
#include "string.hh"
-#include "scalar.hh"
+
const char eol= '\n';
virtual ~Dstream();
Dstream &identify_as (String s);
- /**
- Output a Scalar via the Dstream. This is the only output
- interface. It explicitely delegates all implicit conversion
- to Scalar class.
- */
- Dstream &operator << (Scalar);
+
+ Dstream &operator << (String);
+ Dstream &operator << (Real);
+ Dstream &operator << (int);
+ Dstream &operator << (Rational);
+ Dstream &operator << (char);
/**
Output memory locations.
*/
{
done_mom_ += mus->repeat_body_p_->length_mom ();
- if (full_unfold_b_)
+ if (!mus->volta_fold_b_)
done_count_ ++;
if (alternative_cons_l_)
current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
do_main_b_ = false;
}
- else if (done_count_ < mus->repeats_i_ && full_unfold_b_)
+ else if (done_count_ < mus->repeats_i_ && !mus->volta_fold_b_)
{
current_iter_p_ = get_iterator_p (mus->repeat_body_p_);
do_main_b_ = true;
{
done_mom_ += alternative_cons_l_->car_->length_mom ();
- if (!full_unfold_b_ ||
+ if (mus->volta_fold_b_ ||
mus->repeats_i_ - done_count_ < alternative_count_i_)
alternative_cons_l_ = alternative_cons_l_->next_;
/*
we've done the main body as well, but didn't go over the other
increment. */
- if (full_unfold_b_)
+ if (mus->volta_fold_b_)
done_count_ ++;
}
if (done_count_ < mus->repeats_i_ && alternative_cons_l_)
{
- if (!full_unfold_b_)
+ if (mus->volta_fold_b_)
current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
else
{
Unfolded_repeat_iterator::construct_children ()
{
Repeated_music const* mus =dynamic_cast<Repeated_music const*> (music_l_);
- full_unfold_b_ = playback_b_ || (!mus->volta_fold_b_);
-
alternative_cons_l_ = (mus->alternatives_p_)
? mus->alternatives_p_->music_p_list_p_->head_
: 0;
Unfolded_repeat_iterator::do_print () const
{
#ifndef NPRINT
- DEBUG_OUT << "count " << done_count_ << "done time " << done_mom_ << '\n';
+ DEBUG_OUT << "count " << done_count_ << "done time " << Rational (done_mom_) << '\n';
DEBUG_OUT << "current: ";
current_iter_p_->print();
#endif