projects
/
pulseview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4d08da7
)
Add segment_id to all segment classes
author
Soeren Apel
<soeren@apelpie.net>
Fri, 5 Jan 2018 14:24:41 +0000
(15:24 +0100)
committer
Uwe Hermann
<uwe@hermann-uwe.de>
Tue, 9 Jan 2018 23:34:39 +0000
(
00:34
+0100)
pv/data/analogsegment.cpp
patch
|
blob
|
history
pv/data/analogsegment.hpp
patch
|
blob
|
history
pv/data/decodesignal.cpp
patch
|
blob
|
history
pv/data/logicsegment.cpp
patch
|
blob
|
history
pv/data/logicsegment.hpp
patch
|
blob
|
history
pv/data/segment.cpp
patch
|
blob
|
history
pv/data/segment.hpp
patch
|
blob
|
history
pv/data/signalbase.cpp
patch
|
blob
|
history
pv/session.cpp
patch
|
blob
|
history
diff --git
a/pv/data/analogsegment.cpp
b/pv/data/analogsegment.cpp
index 7a3d62d880ff912356f7daac4bf962af6d1611b5..73a3084dde3c1b8afdb2df57f8c24d7eb24003e0 100644
(file)
--- a/
pv/data/analogsegment.cpp
+++ b/
pv/data/analogsegment.cpp
@@
-48,8
+48,8
@@
const int AnalogSegment::EnvelopeScaleFactor = 1 << EnvelopeScalePower;
const float AnalogSegment::LogEnvelopeScaleFactor = logf(EnvelopeScaleFactor);
const uint64_t AnalogSegment::EnvelopeDataUnit = 64 * 1024; // bytes
const float AnalogSegment::LogEnvelopeScaleFactor = logf(EnvelopeScaleFactor);
const uint64_t AnalogSegment::EnvelopeDataUnit = 64 * 1024; // bytes
-AnalogSegment::AnalogSegment(Analog& owner, uint64_t samplerate) :
- Segment(samplerate, sizeof(float)),
+AnalogSegment::AnalogSegment(Analog& owner, uint
32_t segment_id, uint
64_t samplerate) :
+ Segment(s
egment_id, s
amplerate, sizeof(float)),
owner_(owner),
min_value_(0),
max_value_(0)
owner_(owner),
min_value_(0),
max_value_(0)
diff --git
a/pv/data/analogsegment.hpp
b/pv/data/analogsegment.hpp
index 8cb4d25b9d78648133a470a8eb9974951b3b4ddc..5267e77e604ed27fa6f3d3ad09ea4779e9d1f3e3 100644
(file)
--- a/
pv/data/analogsegment.hpp
+++ b/
pv/data/analogsegment.hpp
@@
-79,7
+79,7
@@
private:
static const uint64_t EnvelopeDataUnit;
public:
static const uint64_t EnvelopeDataUnit;
public:
- AnalogSegment(Analog& owner, uint64_t samplerate);
+ AnalogSegment(Analog& owner, uint
32_t segment_id, uint
64_t samplerate);
virtual ~AnalogSegment();
virtual ~AnalogSegment();
diff --git
a/pv/data/decodesignal.cpp
b/pv/data/decodesignal.cpp
index 1eff9119f319de72fb1bfde4d1f13ec93e7228d6..eb7a0d3b78557f413ba10a57fdf477681a13c75f 100644
(file)
--- a/
pv/data/decodesignal.cpp
+++ b/
pv/data/decodesignal.cpp
@@
-807,7
+807,8
@@
void DecodeSignal::logic_mux_proc()
// Create initial logic mux segment
shared_ptr<LogicSegment> output_segment =
// Create initial logic mux segment
shared_ptr<LogicSegment> output_segment =
- make_shared<LogicSegment>(*logic_mux_data_, logic_mux_unit_size_, 0);
+ make_shared<LogicSegment>(*logic_mux_data_, segment_id,
+ logic_mux_unit_size_, 0);
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(0));
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(0));
@@
-847,7
+848,8
@@
void DecodeSignal::logic_mux_proc()
segment_id++;
output_segment =
segment_id++;
output_segment =
- make_shared<LogicSegment>(*logic_mux_data_, logic_mux_unit_size_, 0);
+ make_shared<LogicSegment>(*logic_mux_data_, segment_id,
+ logic_mux_unit_size_, 0);
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(segment_id));
logic_mux_data_->push_segment(output_segment);
output_segment->set_samplerate(get_input_samplerate(segment_id));
diff --git
a/pv/data/logicsegment.cpp
b/pv/data/logicsegment.cpp
index 38f4bf246c21a619e531be955af26075678c2569..4b32f38d89992a6500293d0d462489a77a9e3243 100644
(file)
--- a/
pv/data/logicsegment.cpp
+++ b/
pv/data/logicsegment.cpp
@@
-46,9
+46,9
@@
const int LogicSegment::MipMapScaleFactor = 1 << MipMapScalePower;
const float LogicSegment::LogMipMapScaleFactor = logf(MipMapScaleFactor);
const uint64_t LogicSegment::MipMapDataUnit = 64 * 1024; // bytes
const float LogicSegment::LogMipMapScaleFactor = logf(MipMapScaleFactor);
const uint64_t LogicSegment::MipMapDataUnit = 64 * 1024; // bytes
-LogicSegment::LogicSegment(pv::data::Logic& owner, u
nsigned int unit_size
,
- uint64_t samplerate) :
- Segment(samplerate, unit_size),
+LogicSegment::LogicSegment(pv::data::Logic& owner, u
int32_t segment_id
,
+ u
nsigned int unit_size, u
int64_t samplerate) :
+ Segment(s
egment_id, s
amplerate, unit_size),
owner_(owner),
last_append_sample_(0)
{
owner_(owner),
last_append_sample_(0)
{
diff --git
a/pv/data/logicsegment.hpp
b/pv/data/logicsegment.hpp
index 3621e7f03a6944944a6f07533a55192e406b7c33..7becfc3e70c1fc47abacc7dcd124e6c09f0f11a7 100644
(file)
--- a/
pv/data/logicsegment.hpp
+++ b/
pv/data/logicsegment.hpp
@@
-77,7
+77,8
@@
public:
typedef pair<int64_t, bool> EdgePair;
public:
typedef pair<int64_t, bool> EdgePair;
public:
- LogicSegment(pv::data::Logic& owner, unsigned int unit_size, uint64_t samplerate);
+ LogicSegment(pv::data::Logic& owner, uint32_t segment_id,
+ unsigned int unit_size, uint64_t samplerate);
virtual ~LogicSegment();
virtual ~LogicSegment();
diff --git
a/pv/data/segment.cpp
b/pv/data/segment.cpp
index 8745e8740dc582f8a53d33ae7ed8e81d36a87398..9b18c6499a1b32cf03362dc67e835f410acb9159 100644
(file)
--- a/
pv/data/segment.cpp
+++ b/
pv/data/segment.cpp
@@
-33,7
+33,8
@@
namespace data {
const uint64_t Segment::MaxChunkSize = 10 * 1024 * 1024; /* 10MiB */
const uint64_t Segment::MaxChunkSize = 10 * 1024 * 1024; /* 10MiB */
-Segment::Segment(uint64_t samplerate, unsigned int unit_size) :
+Segment::Segment(uint32_t segment_id, uint64_t samplerate, unsigned int unit_size) :
+ segment_id_(segment_id),
sample_count_(0),
start_time_(0),
samplerate_(samplerate),
sample_count_(0),
start_time_(0),
samplerate_(samplerate),
@@
-90,6
+91,11
@@
unsigned int Segment::unit_size() const
return unit_size_;
}
return unit_size_;
}
+uint32_t Segment::segment_id() const
+{
+ return segment_id_;
+}
+
void Segment::set_complete()
{
is_complete_ = true;
void Segment::set_complete()
{
is_complete_ = true;
diff --git
a/pv/data/segment.hpp
b/pv/data/segment.hpp
index 62750c11c9c62e0d0de0f948e8d4896417970a22..18f1aed77192978ce1a87cbb86aaf7b929672f73 100644
(file)
--- a/
pv/data/segment.hpp
+++ b/
pv/data/segment.hpp
@@
-58,7
+58,7
@@
private:
static const uint64_t MaxChunkSize;
public:
static const uint64_t MaxChunkSize;
public:
- Segment(uint64_t samplerate, unsigned int unit_size);
+ Segment(uint
32_t segment_id, uint
64_t samplerate, unsigned int unit_size);
virtual ~Segment();
virtual ~Segment();
@@
-71,6
+71,8
@@
public:
unsigned int unit_size() const;
unsigned int unit_size() const;
+ uint32_t segment_id() const;
+
void set_complete();
bool is_complete() const;
void set_complete();
bool is_complete() const;
@@
-85,6
+87,7
@@
protected:
void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase);
void end_raw_sample_iteration(SegmentRawDataIterator* it);
void continue_raw_sample_iteration(SegmentRawDataIterator* it, uint64_t increase);
void end_raw_sample_iteration(SegmentRawDataIterator* it);
+ uint32_t segment_id_;
mutable recursive_mutex mutex_;
vector<uint8_t*> data_chunks_;
uint8_t* current_chunk_;
mutable recursive_mutex mutex_;
vector<uint8_t*> data_chunks_;
uint8_t* current_chunk_;
diff --git
a/pv/data/signalbase.cpp
b/pv/data/signalbase.cpp
index 018e4a2733fca8f813efeff6f9b9c0fd1dd6a9f6..f421e7609de8f1ccb7bfce95905bec16b62cf7a6 100644
(file)
--- a/
pv/data/signalbase.cpp
+++ b/
pv/data/signalbase.cpp
@@
-566,7
+566,7
@@
void SignalBase::conversion_thread_proc()
// Create the initial logic data segment if needed
if (logic_data->logic_segments().size() == 0) {
shared_ptr<LogicSegment> new_segment =
// Create the initial logic data segment if needed
if (logic_data->logic_segments().size() == 0) {
shared_ptr<LogicSegment> new_segment =
- make_shared<LogicSegment>(*logic_data.get(), 1, asegment->samplerate());
+ make_shared<LogicSegment>(*logic_data.get(),
0,
1, asegment->samplerate());
logic_data->push_segment(new_segment);
}
logic_data->push_segment(new_segment);
}
@@
-588,8
+588,8
@@
void SignalBase::conversion_thread_proc()
return;
}
return;
}
- shared_ptr<LogicSegment> new_segment =
-
make_shared<LogicSegment>(*logic_data.get()
, 1, asegment->samplerate());
+ shared_ptr<LogicSegment> new_segment =
make_shared<LogicSegment>(
+
*logic_data.get(), segment_id
, 1, asegment->samplerate());
logic_data->push_segment(new_segment);
lsegment = logic_data->logic_segments().back().get();
logic_data->push_segment(new_segment);
lsegment = logic_data->logic_segments().back().get();
diff --git
a/pv/session.cpp
b/pv/session.cpp
index 605cc05c65fd8ab234f5509d5885f30f276f805d..fb1732bbe79a0d37e81830856aa91339b27d3744 100644
(file)
--- a/
pv/session.cpp
+++ b/
pv/session.cpp
@@
-1109,7
+1109,8
@@
void Session::feed_in_logic(shared_ptr<Logic> logic)
// Create a new data segment
cur_logic_segment_ = make_shared<data::LogicSegment>(
// Create a new data segment
cur_logic_segment_ = make_shared<data::LogicSegment>(
- *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();
logic_data_->push_segment(cur_logic_segment_);
signal_new_segment();
@@
-1162,7
+1163,7
@@
void Session::feed_in_analog(shared_ptr<Analog> analog)
// Create a segment, keep it in the maps of channels
segment = make_shared<data::AnalogSegment>(
// Create a segment, keep it in the maps of channels
segment = make_shared<data::AnalogSegment>(
- *data, cur_samplerate_);
+ *data,
data->get_segment_count(),
cur_samplerate_);
cur_analog_segments_[channel] = segment;
// Push the segment into the analog data.
cur_analog_segments_[channel] = segment;
// Push the segment into the analog data.