OSSIA
Open Scenario System for Interactive Application
Loading...
Searching...
No Matches
ossia::telemetry Namespace Reference

Detailed Description

Informative data going from the execution back to the user interface.

The audio thread never allocates, never locks and never loses a peak:

  • every metering point (a tap) accumulates on its own writer thread;
  • once per publication period, the tick thread gathers all taps into one frame at a fixed slot per tap and hands it over through a triple buffer;
  • levels the interface has not read yet are merged into the next frame instead of being dropped, so the interface can read at any rate.

Slots are allocated by the interface, which pairs each index with a generation: a reader only trusts a slot whose generation it expects.

Classes

struct  bench_levels
 Time a node spent running over a span of frames. More...
 
struct  bench_tap
 One timed node, fed by the graph's executors. More...
 
struct  meter_levels
 Levels accumulated over a span of frames. More...
 
struct  meter_tap
 One metering point. Only its writer thread touches it while it is attached. More...
 
struct  playhead_tap
 

Enumerations

enum class  tap_kind : uint8_t { none , node , hardware_inputs , hardware_outputs }
 

Variables

constexpr std::size_t max_meter_channels = 128
 

Enumeration Type Documentation

◆ tap_kind

enum class ossia::telemetry::tap_kind : uint8_t
strong
Enumerator
node 

fed by the graph, e.g.

an audio outlet's post_process

hardware_inputs 

fed by the tick from the driver's inputs

hardware_outputs 

fed by the tick from the driver's outputs, after the mix