ngscopeclient 0.1-dev+51fbda87c
|
Base class for waveforms with nonuniform sample rate. More...
#include <Waveform.h>
Public Member Functions | |
SparseWaveformBase () | |
Constructs a new empty sparse waveform. | |
void | CopyTimestamps (const SparseWaveformBase *rhs) |
Copies offsets/durations from another waveform into this one. More... | |
void | MarkTimestampsModifiedFromCpu () |
void | MarkTimestampsModifiedFromGpu () |
virtual void | MarkModifiedFromCpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu () override |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
![]() | |
WaveformBase () | |
Creates an empty waveform. | |
WaveformBase (const WaveformBase &rhs) | |
Creates a waveform, copying metadata from another. | |
virtual void | Rename (const std::string &name="")=0 |
Assings a human readable name to the waveform for debug purposes. More... | |
virtual void | clear ()=0 |
Remove all samples from this waveform. More... | |
virtual void | Resize (size_t size)=0 |
Reallocates buffers so the waveform contains the specified number of samples. More... | |
virtual size_t | size () const =0 |
Returns the number of samples in this waveform. More... | |
virtual bool | empty () |
Returns true if this waveform contains no samples, false otherwise. | |
virtual std::string | GetText (size_t i) |
Returns the text representation of a given protocol sample. More... | |
virtual std::string | GetColor (size_t) |
Returns the displayed color (in HTML #rrggbb or #rrggbbaa notation) of a given protocol sample. More... | |
virtual uint32_t | GetColorCached (size_t i) |
Returns the packed RGBA32 color of a given protocol sample calculated by CacheColors() More... | |
virtual void | PrepareForCpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | PrepareForGpuAccess ()=0 |
Indicates that this waveform is going to be used by the CPU in the near future. More... | |
virtual void | MarkSamplesModifiedFromCpu ()=0 |
Indicates that this waveform's sample data has been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkSamplesModifiedFromGpu ()=0 |
Indicates that this waveform's sample data has been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromCpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent. More... | |
virtual void | MarkModifiedFromGpu ()=0 |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent. More... | |
virtual void | CacheColors () |
Updates the cache of packed colors to avoid string parsing every frame. | |
virtual void | FreeGpuMemory ()=0 |
Free GPU-side memory if we are short on VRAM or do not anticipate using this waveform for a while. More... | |
virtual bool | HasGpuBuffer ()=0 |
Returns true if we have at least one buffer resident on the GPU. More... | |
Public Attributes | |
AcceleratorBuffer< int64_t > | m_offsets |
Start timestamps of each sample, in multiples of m_timescale. | |
AcceleratorBuffer< int64_t > | m_durations |
Durations of each sample, in multiples of m_timescale. | |
![]() | |
int64_t | m_timescale |
The time scale, in X axis units (usually femtoseconds) per timestep, used by this channel. More... | |
time_t | m_startTimestamp |
Start time of the acquisition, integer part. | |
int64_t | m_startFemtoseconds |
Start time of the acquisition, fractional part (femtoseconds since since the UTC second) | |
int64_t | m_triggerPhase |
Offset, in X axis units (usually femtoseconds), from the trigger to the sampling clock. More... | |
uint8_t | m_flags |
Flags that apply to this waveform. Bitfield containing zero or more WaveformFlags_t values. | |
uint64_t | m_revision |
Revision number. More... | |
Additional Inherited Members | |
![]() | |
enum | WaveformFlags_t { WAVEFORM_CLIPPING = 1 } |
Flags which may apply to m_flags. More... | |
![]() | |
AcceleratorBuffer< uint32_t > | m_protocolColors |
Cache of packed RGBA32 data with colors for each protocol decode event. Empty for non-protocol waveforms. | |
uint64_t | m_cachedColorRevision |
Revision we last cached colors of. | |
Base class for waveforms with nonuniform sample rate.
Each sample in a sparse waveform has a start time and duration. Samples must be monotonic (each sample begins at or after the end of the previous) however gaps between samples are allowed. This is common in the case of e.g. protocol decode events where there may be a long interval between the end of one packet or data byte and the start of the next.
This class contains timestamp information but no actual waveform data; SparseWaveform contains the actual data.
|
inline |
Copies offsets/durations from another waveform into this one.
Commonly used by filters which perform 1:1 transformations on incoming data.
rhs | Source waveform for timestamp data |
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the CPU and the GPU-side copy is no longer coherent.
Implements WaveformBase.
|
inlineoverridevirtual |
Indicates that this waveform's sample data and timestamps have been modified on the GPU and the CPU-side copy is no longer coherent.
Implements WaveformBase.