#ifndef PULK_VOICES_HH
#define PULK_VOICES_HH
+
#include "pqueue.hh"
#include "plist.hh"
#include "moment.hh"
#include "proto.hh"
#include "lily-proto.hh"
#include "voice.hh"
-
+#include "time-description.hh"
struct Voice_l {
PQueue< Voice_l > voice_pq_;
Pointer_list< Pulk_voice * > pulk_p_list_;
Link_list<Staff *> staff_l_list_;
+ Array < Time_description > time_arr_;
Moment next_mom_;
public:
Moment last_;
+ bool time_checks_failed_b() const;
bool ok() const;
- Moment next_mom() { return next_mom_; }
+ Moment next_mom() const;
Pulk_voices(Link_list<Staff*> const&);
void get_aligned_request(Request_column *col_l );
};
input_.error("Need to have music in a score.");
}
+ Moment previous_mom = -1;
while (pulk.ok()) {
+
Moment w= pulk.next_mom();
+ assert(w > previous_mom);
Request_column* rcol_p = new Request_column( staffs_ );
Score_column* c1 = new Score_column(w);
rcol_p->set_score_cols(c1, c2);
rcols_.bottom().add(rcol_p);
pulk.get_aligned_request( rcol_p );
+ previous_mom =w;
}
+
+ errorlevel_i_ |= pulk.time_checks_failed_b();
}
void
{
if (!paper_p_)
return;
-
+ if( errorlevel_i_){
+ // should we? hampers debugging.
+ warning("Errors found, /*not processing score*/");
+// return;
+ }
pscore_p_ = new PScore(paper_p_);
do_cols();