Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
scope_capture.hpp File Reference

Fixed-capacity streaming oscilloscope trigger and capture. More...

#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <span>
#include <type_traits>

Go to the source code of this file.

Classes

struct  pulp::signal::ScopeCaptureConfig
struct  pulp::signal::ScopeCaptureFrameT< SampleType, MaxSamples >
class  pulp::signal::ScopeCaptureT< SampleType, MaxSamples >

Namespaces

namespace  pulp
namespace  pulp::signal

Typedefs

using pulp::signal::ScopeCapture = ScopeCaptureT<float>
using pulp::signal::ScopeCapture64 = ScopeCaptureT<double>

Enumerations

enum class  pulp::signal::ScopeTriggerMode : std::uint8_t { pulp::signal::immediate , pulp::signal::rising_edge , pulp::signal::falling_edge , pulp::signal::either_edge }

Detailed Description

Fixed-capacity streaming oscilloscope trigger and capture.

Capture windows contain pretrigger_samples samples before the trigger, followed by the trigger sample and the configured post-trigger tail. Edge modes use a level plus hysteresis and can run once or continuously with an exact sample-count holdoff. Continuous acquisition keeps the most recently completed frame published while the next frame is in progress. Processing is allocation-free, lock-free, and independent of caller block partitioning. capture_completion_latency_samples() is acquisition readiness after the trigger sample, not signal-processing or host-compensation latency. capture() exposes same-thread state only; callers must provide their own synchronized snapshot/mailbox when publishing frames across threads.