X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Fdecoder_output%2Fview.cpp;h=d8bbb03a0cbf8fb6fda68252bae79852bbc0f4f0;hb=ac9494eff3ebc74ae7a87746a4d8668c68f32b52;hp=171767e3236028d63b6f677c17608979b9889b63;hpb=a13d836f653a19a28b115edff84a5cc6ca55e2ef;p=pulseview.git diff --git a/pv/views/decoder_output/view.cpp b/pv/views/decoder_output/view.cpp index 171767e3..d8bbb03a 100644 --- a/pv/views/decoder_output/view.cpp +++ b/pv/views/decoder_output/view.cpp @@ -58,8 +58,7 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : class_selector_(new QComboBox()), stacked_widget_(new QStackedWidget()), hex_view_(new QHexView()), - signal_(nullptr), - merged_data_(new QByteArray()) + signal_(nullptr) { QVBoxLayout *root_layout = new QVBoxLayout(this); root_layout->setContentsMargins(0, 0, 0, 0); @@ -94,8 +93,6 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : decoder_selector_->setSizeAdjustPolicy(QComboBox::AdjustToContents); class_selector_->setSizeAdjustPolicy(QComboBox::AdjustToContents); - hex_view_->setData(merged_data_); - reset_view_state(); } @@ -192,23 +189,19 @@ void View::restore_settings(QSettings &settings) void View::update_data() { if (!signal_) { - merged_data_->clear(); + hex_view_->clear(); return; } if (signal_->get_binary_data_chunk_count(current_segment_, decoder_, bin_class_id_) == 0) { - merged_data_->clear(); + hex_view_->clear(); return; } - vector data; - signal_->get_binary_data_chunks_merged(current_segment_, decoder_, bin_class_id_, - 0, numeric_limits::max(), &data); - - merged_data_->resize(data.size()); - memcpy(merged_data_->data(), data.data(), data.size()); + const DecodeBinaryClass* bin_class = + signal_->get_binary_data_class(current_segment_, decoder_, bin_class_id_); - hex_view_->setData(merged_data_); + hex_view_->setData(bin_class); } void View::on_selected_decoder_changed(int index) @@ -230,8 +223,8 @@ void View::on_selected_decoder_changed(int index) if (signal_) { // Populate binary class selector - uint8_t bin_classes = decoder_->get_binary_class_count(); - for (uint8_t i = 0; i < bin_classes; i++) { + uint32_t bin_classes = decoder_->get_binary_class_count(); + for (uint32_t i = 0; i < bin_classes; i++) { const data::decode::DecodeBinaryClassInfo* class_info = decoder_->get_binary_class(i); class_selector_->addItem(class_info->name, QVariant::fromValue(i)); } @@ -245,7 +238,7 @@ void View::on_selected_decoder_changed(int index) void View::on_selected_class_changed(int index) { - bin_class_id_ = class_selector_->itemData(index).value(); + bin_class_id_ = class_selector_->itemData(index).value(); update_data(); }