X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Fdecoder_output%2Fview.cpp;h=0f127c8751d72340530f0a940a407c255f725115;hp=c6d80d16e3dee9aa7feca83b9d63c396b12156a1;hb=a767229eb18acbd70af38bb660c8ebd1bbd82e73;hpb=ff9f0baf2ca82358f22f2d726729dfc5e38a549c diff --git a/pv/views/decoder_output/view.cpp b/pv/views/decoder_output/view.cpp index c6d80d16..0f127c87 100644 --- a/pv/views/decoder_output/view.cpp +++ b/pv/views/decoder_output/view.cpp @@ -41,11 +41,8 @@ using pv::data::DecodeSignal; using pv::data::SignalBase; using pv::data::decode::Decoder; -using pv::util::TimeUnit; using pv::util::Timestamp; -using std::dynamic_pointer_cast; -using std::numeric_limits; using std::shared_ptr; namespace pv { @@ -56,7 +53,7 @@ const char* SaveTypeNames[SaveTypeCount] = { "Binary", "Hex Dump, plain", "Hex Dump, with offset", - "Hex Dump, complete" + "Hex Dump, canonical" }; @@ -135,10 +132,6 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : reset_view_state(); } -View::~View() -{ -} - ViewType View::get_type() const { return ViewTypeDecoderOutput; @@ -272,6 +265,8 @@ void View::save_data() const pair selection = hex_view_->get_selection(); vector data; + data.resize(selection.second - selection.first + 1); + signal_->get_merged_binary_data_chunks_by_offset(current_segment_, decoder_, bin_class_id_, selection.first, selection.second, &data); @@ -310,17 +305,19 @@ void View::save_data_as_hex_dump(bool with_offset, bool with_ascii) const pair selection = hex_view_->get_selection(); vector data; + data.resize(selection.second - selection.first + 1); + signal_->get_merged_binary_data_chunks_by_offset(current_segment_, decoder_, bin_class_id_, selection.first, selection.second, &data); QTextStream out_stream(&file); uint64_t offset = selection.first; - unsigned int n = hex_view_->get_bytes_per_line(); + uint64_t n = hex_view_->get_bytes_per_line(); QString s; while (offset < selection.second) { - size_t end = std::min(selection.second, offset + n); + size_t end = std::min((uint64_t)(selection.second), offset + n); offset = hex_view_->create_hex_line(offset, end, &s, with_offset, with_ascii); out_stream << s << endl; } @@ -470,7 +467,7 @@ void View::on_actionSave_triggered(QAction* action) void View::perform_delayed_view_update() { - if (!binary_data_exists_) + if (signal_ && !binary_data_exists_) if (signal_->get_binary_data_chunk_count(current_segment_, decoder_, bin_class_id_)) binary_data_exists_ = true;