PulseView  unreleased development snapshot
A Qt-based sigrok GUI
pv::data::AnalogSegment Class Reference

#include <analogsegment.hpp>

Inheritance diagram for pv::data::AnalogSegment:
Collaboration diagram for pv::data::AnalogSegment:

Classes

struct  Envelope
 
struct  EnvelopeSample
 
struct  EnvelopeSection
 

Public Member Functions

 AnalogSegment (Analog &owner, uint32_t segment_id, uint64_t samplerate)
 
virtual ~AnalogSegment ()
 
void append_interleaved_samples (const float *data, size_t sample_count, size_t stride)
 
float get_sample (int64_t sample_num) const
 
void get_samples (int64_t start_sample, int64_t end_sample, float *dest) const
 
const pair< float, float > get_min_max () const
 
float * get_iterator_value_ptr (SegmentDataIterator *it)
 
void get_envelope_section (EnvelopeSection &s, uint64_t start, uint64_t end, float min_length) const
 
- Public Member Functions inherited from pv::data::Segment
 Segment (uint32_t segment_id, uint64_t samplerate, unsigned int unit_size)
 
virtual ~Segment ()
 
uint64_t get_sample_count () const
 
const pv::util::Timestampstart_time () const
 
double samplerate () const
 
void set_samplerate (double samplerate)
 
unsigned int unit_size () const
 
uint32_t segment_id () const
 
void set_complete ()
 
bool is_complete () const
 
void free_unused_memory ()
 

Private Member Functions

void reallocate_envelope (Envelope &e)
 
void append_payload_to_envelope_levels ()
 

Private Attributes

Analogowner_
 
struct Envelope envelope_levels_ [ScaleStepCount]
 
float min_value_
 
float max_value_
 

Static Private Attributes

static const unsigned int ScaleStepCount = 10
 
static const int EnvelopeScalePower = 4
 
static const int EnvelopeScaleFactor = 1 << EnvelopeScalePower
 
static const float LogEnvelopeScaleFactor = logf(EnvelopeScaleFactor)
 
static const uint64_t EnvelopeDataUnit = 64 * 1024
 

Friends

struct AnalogSegmentTest::Basic
 

Additional Inherited Members

- Signals inherited from pv::data::Segment
void completed ()
 
- Protected Member Functions inherited from pv::data::Segment
void append_single_sample (void *data)
 
void append_samples (void *data, uint64_t samples)
 
const uint8_t * get_raw_sample (uint64_t sample_num) const
 
void get_raw_samples (uint64_t start, uint64_t count, uint8_t *dest) const
 
SegmentDataIteratorbegin_sample_iteration (uint64_t start)
 
void continue_sample_iteration (SegmentDataIterator *it, uint64_t increase)
 
void end_sample_iteration (SegmentDataIterator *it)
 
uint8_t * get_iterator_value (SegmentDataIterator *it)
 
uint64_t get_iterator_valid_length (SegmentDataIterator *it)
 
- Protected Attributes inherited from pv::data::Segment
uint32_t segment_id_
 
recursive_mutex mutex_
 
deque< uint8_t * > data_chunks_
 
uint8_t * current_chunk_
 
uint64_t used_samples_
 
uint64_t unused_samples_
 
atomic< uint64_t > sample_count_
 
pv::util::Timestamp start_time_
 
double samplerate_
 
uint64_t chunk_size_
 
unsigned int unit_size_
 
int iterator_count_
 
bool mem_optimization_requested_
 
bool is_complete_
 

Detailed Description

Definition at line 42 of file analogsegment.hpp.


Class Documentation

struct pv::data::AnalogSegment::Envelope

Definition at line 62 of file analogsegment.hpp.

Collaboration diagram for pv::data::AnalogSegment::Envelope:
Class Members
uint64_t data_length
uint64_t length
EnvelopeSample * samples
struct pv::data::AnalogSegment::EnvelopeSample

Definition at line 47 of file analogsegment.hpp.

Collaboration diagram for pv::data::AnalogSegment::EnvelopeSample:
Class Members
float max
float min
struct pv::data::AnalogSegment::EnvelopeSection

Definition at line 53 of file analogsegment.hpp.

Collaboration diagram for pv::data::AnalogSegment::EnvelopeSection:
Class Members
uint64_t length
EnvelopeSample * samples
unsigned int scale
uint64_t start

Constructor & Destructor Documentation

pv::data::AnalogSegment::AnalogSegment ( Analog owner,
uint32_t  segment_id,
uint64_t  samplerate 
)

Definition at line 51 of file analogsegment.cpp.

pv::data::AnalogSegment::~AnalogSegment ( )
virtual

Definition at line 61 of file analogsegment.cpp.

Member Function Documentation

void pv::data::AnalogSegment::append_interleaved_samples ( const float *  data,
size_t  sample_count,
size_t  stride 
)

Definition at line 68 of file analogsegment.cpp.

Here is the call graph for this function:

void pv::data::AnalogSegment::append_payload_to_envelope_levels ( )
private

Definition at line 171 of file analogsegment.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void pv::data::AnalogSegment::get_envelope_section ( EnvelopeSection s,
uint64_t  start,
uint64_t  end,
float  min_length 
) const

Definition at line 136 of file analogsegment.cpp.

Here is the call graph for this function:

float * pv::data::AnalogSegment::get_iterator_value_ptr ( SegmentDataIterator it)

Definition at line 129 of file analogsegment.cpp.

Here is the caller graph for this function:

const pair< float, float > pv::data::AnalogSegment::get_min_max ( ) const

Definition at line 124 of file analogsegment.cpp.

float pv::data::AnalogSegment::get_sample ( int64_t  sample_num) const

Definition at line 99 of file analogsegment.cpp.

Here is the call graph for this function:

void pv::data::AnalogSegment::get_samples ( int64_t  start_sample,
int64_t  end_sample,
float *  dest 
) const

Definition at line 109 of file analogsegment.cpp.

Here is the call graph for this function:

void pv::data::AnalogSegment::reallocate_envelope ( Envelope e)
private

Definition at line 160 of file analogsegment.cpp.

Here is the caller graph for this function:

Friends And Related Function Documentation

friend struct AnalogSegmentTest::Basic
friend

Definition at line 106 of file analogsegment.hpp.

Member Data Documentation

struct Envelope pv::data::AnalogSegment::envelope_levels_[ScaleStepCount]
private

Definition at line 102 of file analogsegment.hpp.

const uint64_t pv::data::AnalogSegment::EnvelopeDataUnit = 64 * 1024
staticprivate

Definition at line 74 of file analogsegment.hpp.

const int pv::data::AnalogSegment::EnvelopeScaleFactor = 1 << EnvelopeScalePower
staticprivate

Definition at line 72 of file analogsegment.hpp.

const int pv::data::AnalogSegment::EnvelopeScalePower = 4
staticprivate

Definition at line 71 of file analogsegment.hpp.

const float pv::data::AnalogSegment::LogEnvelopeScaleFactor = logf(EnvelopeScaleFactor)
staticprivate

Definition at line 73 of file analogsegment.hpp.

float pv::data::AnalogSegment::max_value_
private

Definition at line 104 of file analogsegment.hpp.

float pv::data::AnalogSegment::min_value_
private

Definition at line 104 of file analogsegment.hpp.

Analog& pv::data::AnalogSegment::owner_
private

Definition at line 100 of file analogsegment.hpp.

const unsigned int pv::data::AnalogSegment::ScaleStepCount = 10
staticprivate

Definition at line 70 of file analogsegment.hpp.


The documentation for this class was generated from the following files: