X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdata%2Fdecodesignal.cpp;h=ce38fbe3df15b90abec65378851ad20cbcae758f;hb=feda6c6bbde575242cf01c769c0ecd3e89f9f7a0;hp=d976c494e2a74c88fce9aec39bf1bb983a470dce;hpb=4526de63ae7ed0c3d1a708a84be16acbb9b62356;p=pulseview.git diff --git a/pv/data/decodesignal.cpp b/pv/data/decodesignal.cpp index d976c494..ce38fbe3 100644 --- a/pv/data/decodesignal.cpp +++ b/pv/data/decodesignal.cpp @@ -35,17 +35,13 @@ using std::forward_list; using std::lock_guard; -using std::make_pair; using std::make_shared; using std::min; using std::out_of_range; using std::shared_ptr; using std::unique_lock; -using pv::data::decode::Annotation; using pv::data::decode::AnnotationClass; using pv::data::decode::DecodeChannel; -using pv::data::decode::Decoder; -using pv::data::decode::Row; namespace pv { namespace data { @@ -136,8 +132,8 @@ bool DecodeSignal::toggle_decoder_visibility(int index) // Toggle decoder visibility bool state = false; if (dec) { - state = !dec->shown(); - dec->show(state); + state = !dec->visible(); + dec->set_visible(state); } return state; @@ -437,7 +433,7 @@ vector DecodeSignal::get_rows(bool visible_only) for (const shared_ptr& dec : stack_) { assert(dec); - if (visible_only && !dec->shown()) + if (visible_only && !dec->visible()) continue; for (Row* row : dec->get_rows()) @@ -453,7 +449,7 @@ vector DecodeSignal::get_rows(bool visible_only) const for (const shared_ptr& dec : stack_) { assert(dec); - if (visible_only && !dec->shown()) + if (visible_only && !dec->visible()) continue; for (const Row* row : dec->get_rows()) @@ -474,17 +470,15 @@ uint64_t DecodeSignal::get_annotation_count(const Row* row, uint32_t segment_id) auto row_it = segment->annotation_rows.find(row); const RowData* rd; - if (row_it == segment->annotation_rows.end()) { - // FIXME Use the fallback row, but how? - assert(false); + if (row_it == segment->annotation_rows.end()) return 0; - } else + else rd = &(row_it->second); return rd->get_annotation_count(); } -void DecodeSignal::get_annotation_subset(vector &dest, +void DecodeSignal::get_annotation_subset(vector &dest, const Row* row, uint32_t segment_id, uint64_t start_sample, uint64_t end_sample) const { @@ -498,29 +492,27 @@ void DecodeSignal::get_annotation_subset(vector &dest, auto row_it = segment->annotation_rows.find(row); const RowData* rd; - if (row_it == segment->annotation_rows.end()) { - // FIXME Use the fallback row, but how? - assert(false); + if (row_it == segment->annotation_rows.end()) return; - } else + else rd = &(row_it->second); rd->get_annotation_subset(dest, start_sample, end_sample); } -void DecodeSignal::get_annotation_subset(vector &dest, +void DecodeSignal::get_annotation_subset(vector &dest, uint32_t segment_id, uint64_t start_sample, uint64_t end_sample) const { // Use forward_lists for faster merging - forward_list *all_ann_list = new forward_list(); + forward_list *all_ann_list = new forward_list(); vector rows = get_rows(); for (const Row* row : rows) { - vector *ann_vector = new vector(); + vector *ann_vector = new vector(); get_annotation_subset(*ann_vector, row, segment_id, start_sample, end_sample); - forward_list *ann_list = - new forward_list(ann_vector->begin(), ann_vector->end()); + forward_list *ann_list = + new forward_list(ann_vector->begin(), ann_vector->end()); delete ann_vector; all_ann_list->merge(*ann_list); @@ -679,7 +671,7 @@ void DecodeSignal::save_settings(QSettings &settings) const settings.beginGroup("decoder" + QString::number(decoder_idx++)); settings.setValue("id", decoder->get_srd_decoder()->id); - settings.setValue("shown", decoder->shown()); + settings.setValue("visible", decoder->visible()); // Save decoder options const map& options = decoder->options(); @@ -747,7 +739,7 @@ void DecodeSignal::restore_settings(QSettings &settings) shared_ptr decoder = make_shared(dec); stack_.push_back(decoder); - decoder->show(settings.value("shown", true).toBool()); + decoder->set_visible(settings.value("visible", true).toBool()); // Restore decoder options that differ from their default int options = settings.value("options").toInt(); @@ -1370,7 +1362,7 @@ void DecodeSignal::create_decode_segment() segments_.emplace_back(DecodeSegment()); // Add annotation classes - for (const shared_ptr dec : stack_) + for (const shared_ptr& dec : stack_) for (Row* row : dec->get_rows()) segments_.back().annotation_rows.emplace(row, RowData(row));