_decoder_stack->get_start_time()) / scale;
const double samples_per_pixel = samplerate * scale;
+ const uint64_t start_sample = (uint64_t)max((left + pixels_offset) *
+ samples_per_pixel, 0.0);
+ const uint64_t end_sample = (uint64_t)max((right + pixels_offset) *
+ samples_per_pixel, 0.0);
+
QFontMetrics m(QApplication::font());
const int h = (m.boundingRect(QRect(), 0, "Tg").height() * 5) / 4;
const int y = get_y();
assert(_decoder_stack);
- vector<Annotation> annotations(_decoder_stack->annotations());
+ vector<Annotation> annotations;
+ _decoder_stack->get_annotation_subset(annotations,
+ start_sample, end_sample);
+
+ BOOST_FOREACH(const Annotation &a, annotations)
+ {
+ // Every stacked PD is 60 pixels further down.
+ int y_stack_offset = a.pd_index() * 60;
- BOOST_FOREACH(const Annotation &a, annotations) {
// Every annotation row is 20 pixels further down.
int y_ann_row_offset = a.row() * 20;
draw_annotation(a, p, get_text_colour(), h, left, right,
samples_per_pixel, pixels_offset,
- y + y_ann_row_offset);
+ y + y_stack_offset + y_ann_row_offset);
}
draw_unresolved_period(p, h, left, right,