]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decoderstack.cpp
Use a type with a greater resolution to represent time values
[pulseview.git] / pv / data / decoderstack.cpp
index 7c1982bd707aeec31b46735b80f88f2c17d1215b..0bb875da74b68e8a30086e90124d69eea93400b5 100644 (file)
@@ -107,7 +107,7 @@ void DecoderStack::remove(int index)
 
        // Find the decoder in the stack
        auto iter = stack_.begin();
-       for(int i = 0; i < index; i++, iter++)
+       for (int i = 0; i < index; i++, iter++)
                assert(iter != stack_.end());
 
        // Delete the element
@@ -119,7 +119,7 @@ double DecoderStack::samplerate() const
        return samplerate_;
 }
 
-double DecoderStack::start_time() const
+const pv::util::Timestamp& DecoderStack::start_time() const
 {
        return start_time_;
 }
@@ -286,7 +286,7 @@ uint64_t DecoderStack::max_sample_count() const
 optional<int64_t> DecoderStack::wait_for_data() const
 {
        unique_lock<mutex> input_lock(input_mutex_);
-       while(!interrupt_ && !frame_complete_ &&
+       while (!interrupt_ && !frame_complete_ &&
                samples_decoded_ >= sample_count_)
                input_cond_.wait(input_lock);
        return boost::make_optional(!interrupt_ &&
@@ -312,8 +312,8 @@ void DecoderStack::decode_data(
                        i + chunk_sample_count, sample_count);
                segment_->get_samples(chunk, i, chunk_end);
 
-               if (srd_session_send(session, i, i + sample_count, chunk,
-                               (chunk_end - i) * unit_size) != SRD_OK) {
+               if (srd_session_send(session, i, chunk_end, chunk,
+                               (chunk_end - i) * unit_size, unit_size) != SRD_OK) {
                        error_message_ = tr("Decoder reported an error");
                        break;
                }
@@ -347,7 +347,7 @@ void DecoderStack::decode_proc()
 
        for (const shared_ptr<decode::Decoder> &dec : stack_)
        {
-               srd_decoder_inst *const di = dec->create_decoder_inst(session, unit_size);
+               srd_decoder_inst *const di = dec->create_decoder_inst(session);
 
                if (!di)
                {
@@ -379,7 +379,7 @@ void DecoderStack::decode_proc()
 
        do {
                decode_data(*sample_count, unit_size, session);
-       } while(error_message_.isEmpty() && (sample_count = wait_for_data()));
+       } while (error_message_.isEmpty() && (sample_count = wait_for_data()));
 
        // Destroy the session
        srd_session_destroy(session);