4 #include "staffwalker.hh"
9 #include "musicalrequest.hh"
10 #include "commandrequest.hh" // todo
11 #include "midistream.hh"
14 Staff::add(PointerList
<Voice
*> const &l
)
16 for (iter_top(l
,i
); i
.ok(); i
++)
17 voice_list_
.bottom().add(i
);
23 return score_l_
->paper_p_
;
31 if (!i
->musical_column_l_
->used())
32 i
->musical_column_l_
= 0;
33 if (!i
->command_column_l_
->used())
34 i
->command_column_l_
=0;
36 if (!i
->command_column_l_
&& !i
->musical_column_l_
)
44 // Staff::midi_track_p()
46 // Midi_track_p midi_track_p = new Midi_track;
47 // Midi_walker( *this );
51 Staff::get_col(Moment w
, PCursor
<Staff_column
*> *last
)
54 if (last
&& last
->ok() && (*last
)->when() <= w
)
62 } else if (i
->when() > w
)
67 PCursor
<Score_column
*> sccols(score_l_
->find_col(w
, false));
68 Staff_column
* stcol_p
= create_col();
70 Score_column
* comcol_l
= sccols
++;
71 stcol_p
->set_cols(comcol_l
, sccols
);
74 cols
.bottom().add( stcol_p
);
86 put all stuff grouped vertically in the Staff_cols.
87 Do the preprarations for walking the cols. not virtual
90 Staff::setup_staffcols()
92 for (iter_top(voice_list_
,i
); i
.ok(); i
++) {
93 PCursor
<Staff_column
*> last(cols
);
94 Moment now
= i
->start
;
95 for (iter_top(i
->elts
,j
); j
.ok(); j
++) {
97 Staff_column
*s_l
= get_col(now
, &last
);
98 assert(now
== s_l
->when());
102 // get_col(now,last);
116 for (; i
.ok(); j
++,i
++) {
117 assert(j
->when () < i
->when() );
128 for (iter_top(voice_list_
,i
); i
.ok(); i
++) {
139 for (iter_top(voice_list_
,i
); i
.ok(); i
++) {