X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fsession.cpp;h=c18575ad415559a8e66fa0fae7a6b65774a53c59;hb=056f443e2a6f8db80161ce08d7ff8111175bc3d6;hp=605cc05c65fd8ab234f5509d5885f30f276f805d;hpb=558ad6ceb934ab7406d286c1a4ae08da4aba1448;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index 605cc05..c18575a 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -677,16 +677,16 @@ double Session::get_samplerate() const return samplerate; } -int Session::get_segment_count() const +uint32_t Session::get_segment_count() const { - int min_val = INT_MAX; + uint32_t value = 0; - // Find the lowest common number of segments + // Find the highest number of segments for (shared_ptr data : all_signal_data_) - if (data->get_segment_count() < min_val) - min_val = data->get_segment_count(); + if (data->get_segment_count() > value) + value = data->get_segment_count(); - return (min_val != INT_MAX) ? min_val : 0; + return value; } const unordered_set< shared_ptr > Session::signalbases() const @@ -694,6 +694,17 @@ const unordered_set< shared_ptr > Session::signalbases() const return signalbases_; } +bool Session::all_segments_complete(uint32_t segment_id) const +{ + bool all_complete = true; + + for (shared_ptr base : signalbases_) + if (!base->segment_is_complete(segment_id)) + all_complete = false; + + return all_complete; +} + #ifdef ENABLE_DECODE shared_ptr Session::add_decode_signal() { @@ -1109,7 +1120,8 @@ void Session::feed_in_logic(shared_ptr logic) // Create a new data segment cur_logic_segment_ = make_shared( - *logic_data_, logic->unit_size(), cur_samplerate_); + *logic_data_, logic_data_->get_segment_count(), + logic->unit_size(), cur_samplerate_); logic_data_->push_segment(cur_logic_segment_); signal_new_segment(); @@ -1162,7 +1174,7 @@ void Session::feed_in_analog(shared_ptr analog) // Create a segment, keep it in the maps of channels segment = make_shared( - *data, cur_samplerate_); + *data, data->get_segment_count(), cur_samplerate_); cur_analog_segments_[channel] = segment; // Push the segment into the analog data.