projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use <cmath> in favor of <math.h> everywhere.
[pulseview.git]
/
pv
/
data
/
decoderstack.cpp
diff --git
a/pv/data/decoderstack.cpp
b/pv/data/decoderstack.cpp
index 5e30faa73c810e7d64e9bfb936e7cb6e8656daa8..e9876d21bc268299eeab4c1fd9d835a237001fd7 100644
(file)
--- a/
pv/data/decoderstack.cpp
+++ b/
pv/data/decoderstack.cpp
@@
-27,10
+27,10
@@
#include "decoderstack.hpp"
#include <pv/data/logic.hpp>
#include "decoderstack.hpp"
#include <pv/data/logic.hpp>
-#include <pv/data/logics
napsho
t.hpp>
+#include <pv/data/logics
egmen
t.hpp>
#include <pv/data/decode/decoder.hpp>
#include <pv/data/decode/annotation.hpp>
#include <pv/data/decode/decoder.hpp>
#include <pv/data/decode/annotation.hpp>
-#include <pv/s
igs
ession.hpp>
+#include <pv/session.hpp>
#include <pv/view/logicsignal.hpp>
using std::lock_guard;
#include <pv/view/logicsignal.hpp>
using std::lock_guard;
@@
-59,9
+59,11
@@
const unsigned int DecoderStack::DecodeNotifyPeriod = 65536;
mutex DecoderStack::global_decode_mutex_;
mutex DecoderStack::global_decode_mutex_;
-DecoderStack::DecoderStack(pv::S
igS
ession &session,
+DecoderStack::DecoderStack(pv::Session &session,
const srd_decoder *const dec) :
session_(session),
const srd_decoder *const dec) :
session_(session),
+ start_time_(0),
+ samplerate_(0),
sample_count_(0),
frame_complete_(false),
samples_decoded_(0)
sample_count_(0),
frame_complete_(false),
samples_decoded_(0)
@@
-112,6
+114,16
@@
void DecoderStack::remove(int index)
stack_.erase(iter);
}
stack_.erase(iter);
}
+double DecoderStack::samplerate() const
+{
+ return samplerate_;
+}
+
+double DecoderStack::start_time() const
+{
+ return start_time_;
+}
+
int64_t DecoderStack::samples_decoded() const
{
lock_guard<mutex> decode_lock(output_mutex_);
int64_t DecoderStack::samples_decoded() const
{
lock_guard<mutex> decode_lock(output_mutex_);
@@
-233,7
+245,7
@@
void DecoderStack::begin_decode()
// We get the logic data of the first channel in the list.
// This works because we are currently assuming all
// We get the logic data of the first channel in the list.
// This works because we are currently assuming all
- // LogicSignals have the same data/s
napsho
t
+ // LogicSignals have the same data/s
egmen
t
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (dec && !dec->channels().empty() &&
((logic_signal = (*dec->channels().begin()).second)) &&
for (const shared_ptr<decode::Decoder> &dec : stack_)
if (dec && !dec->channels().empty() &&
((logic_signal = (*dec->channels().begin()).second)) &&
@@
-243,16
+255,16
@@
void DecoderStack::begin_decode()
if (!data)
return;
if (!data)
return;
- // Check we have a s
napsho
t of data
- const deque< shared_ptr<pv::data::LogicS
napshot> > &snapsho
ts =
- data->
get_snapsho
ts();
- if (s
napsho
ts.empty())
+ // Check we have a s
egmen
t of data
+ const deque< shared_ptr<pv::data::LogicS
egment> > &segmen
ts =
+ data->
logic_segmen
ts();
+ if (s
egmen
ts.empty())
return;
return;
- s
napshot_ = snapsho
ts.front();
+ s
egment_ = segmen
ts.front();
// Get the samplerate and start time
// Get the samplerate and start time
- start_time_ =
data->get_
start_time();
- samplerate_ =
data
->samplerate();
+ start_time_ =
segment_->
start_time();
+ samplerate_ =
segment_
->samplerate();
if (samplerate_ == 0.0)
samplerate_ = 1.0;
if (samplerate_ == 0.0)
samplerate_ = 1.0;
@@
-289,7
+301,7
@@
void DecoderStack::decode_data(
uint8_t chunk[DecodeChunkLength];
const unsigned int chunk_sample_count =
uint8_t chunk[DecodeChunkLength];
const unsigned int chunk_sample_count =
- DecodeChunkLength / s
napsho
t_->unit_size();
+ DecodeChunkLength / s
egmen
t_->unit_size();
for (int64_t i = 0; !interrupt_ && i < sample_count;
i += chunk_sample_count)
for (int64_t i = 0; !interrupt_ && i < sample_count;
i += chunk_sample_count)
@@
-298,7
+310,7
@@
void DecoderStack::decode_data(
const int64_t chunk_end = min(
i + chunk_sample_count, sample_count);
const int64_t chunk_end = min(
i + chunk_sample_count, sample_count);
- s
napsho
t_->get_samples(chunk, i, chunk_end);
+ s
egmen
t_->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, i + sample_count, chunk,
(chunk_end - i) * unit_size) != SRD_OK) {
@@
-324,14
+336,14
@@
void DecoderStack::decode_proc()
srd_session *session;
srd_decoder_inst *prev_di = NULL;
srd_session *session;
srd_decoder_inst *prev_di = NULL;
- assert(s
napsho
t_);
+ assert(s
egmen
t_);
// Create the session
srd_session_new(&session);
assert(session);
// Create the decoders
// Create the session
srd_session_new(&session);
assert(session);
// Create the decoders
- const unsigned int unit_size = s
napsho
t_->unit_size();
+ const unsigned int unit_size = s
egmen
t_->unit_size();
for (const shared_ptr<decode::Decoder> &dec : stack_)
{
for (const shared_ptr<decode::Decoder> &dec : stack_)
{
@@
-353,7
+365,7
@@
void DecoderStack::decode_proc()
// Get the intial sample count
{
unique_lock<mutex> input_lock(input_mutex_);
// Get the intial sample count
{
unique_lock<mutex> input_lock(input_mutex_);
- sample_count = sample_count_ = s
napsho
t_->get_sample_count();
+ sample_count = sample_count_ = s
egmen
t_->get_sample_count();
}
// Start the session
}
// Start the session
@@
-392,7
+404,7
@@
void DecoderStack::annotation_callback(srd_proto_data *pdata, void *decoder)
assert(decc);
auto row_iter = d->rows_.end();
assert(decc);
auto row_iter = d->rows_.end();
-
+
// Try looking up the sub-row of this class
const auto r = d->class_rows_.find(make_pair(decc, a.format()));
if (r != d->class_rows_.end())
// Try looking up the sub-row of this class
const auto r = d->class_rows_.find(make_pair(decc, a.format()));
if (r != d->class_rows_.end())
@@
-424,8
+436,8
@@
void DecoderStack::on_data_received()
{
{
unique_lock<mutex> lock(input_mutex_);
{
{
unique_lock<mutex> lock(input_mutex_);
- if (s
napsho
t_)
- sample_count_ = s
napsho
t_->get_sample_count();
+ if (s
egmen
t_)
+ sample_count_ = s
egmen
t_->get_sample_count();
}
input_cond_.notify_one();
}
}
input_cond_.notify_one();
}
@@
-434,7
+446,7
@@
void DecoderStack::on_frame_ended()
{
{
unique_lock<mutex> lock(input_mutex_);
{
{
unique_lock<mutex> lock(input_mutex_);
- if (s
napsho
t_)
+ if (s
egmen
t_)
frame_complete_ = true;
}
input_cond_.notify_one();
frame_complete_ = true;
}
input_cond_.notify_one();