7 #include "staffcommands.hh"
11 Staff::add(PointerList<Voice*> &l)
13 for (iter_top(l,i); i.ok(); i++)
14 voices.bottom().add(i);
18 Staff::process_commands(Moment l)
21 staff_commands_->clean(l);
27 return score_->paper_;
35 if (!i->score_column->used())
43 Staff::get_col(Moment w, bool mus)
45 Score_column* sc = score_->find_col(w,mus);
46 assert(sc->when == w);
50 if (*i->score_column > *sc) // too far
52 if (sc == i->score_column)
56 /* post: *sc > *->score_column || !i.ok() */
57 Staff_column* newst = create_col(sc);
60 cols.bottom().add(newst);
69 // ; assert((i-1).ok())
72 // making a fix at 2:30 am, with several beers drunk.
74 if ((i-1).ok()&& (i-1)->when() == newst->when()) {
86 put all stuff grouped vertically in the Staff_cols
89 Staff::setup_staffcols()
91 for (iter_top(voices,i); i.ok(); i++) {
92 Moment now = i->start;
93 for (iter_top(i->elts,ve); ve.ok(); ve++) {
95 Staff_column *sc=get_col(now,true);
101 for (iter_top(*staff_commands_,cc); cc.ok(); cc++) {
102 Staff_column *sc=get_col(cc->tdescription_.when,false);
104 sc->tdescription_ = new Time_description(cc->tdescription_);
107 iter_top(*staff_commands_,cc);
108 for (iter_top(cols,i); i.ok(); i++) {
109 while ((cc+1).ok() && (cc+1)->when() < i->when())
112 if(!i->tdescription_) {
113 if (cc->tdescription_.when == i->when())
114 i->tdescription_ = new Time_description(cc->tdescription_);
116 i->tdescription_ = new Time_description(
117 i->when() - cc->when() ,&cc->tdescription_);
145 for (iter_top(voices,i); i.ok(); i++) {
157 for (iter_top(voices,i); i.ok(); i++) {
161 staff_commands_->print();