Unified domain enum combining all three ProcessingToken subsystems.
This enum provides a unified interface for defining processing domains by combining tokens from Nodes, Buffers, and Vruta subsystems. Each domain represents a complete processing configuration that spans all three subsystems.
The enum uses bitfield composition to create unified domain identifiers that can be decomposed back into their constituent subsystem tokens when needed.
| Enumerator |
|---|
| AUDIO | Standard real-time audio processing domain.
Combines:
|
| AUDIO_PARALLEL | High-performance parallel audio processing domain.
Combines:
|
| GRAPHICS | Standard real-time graphics processing domain.
Combines:
|
| GRAPHICS_ADAPTIVE | Multi-rate graphics processing for adaptive frame rates.
Combines:
|
| CUSTOM_ON_DEMAND | Custom processing domain with on-demand scheduling.
Combines:
|
| CUSTOM_FLEXIBLE | Custom processing domain with flexible scheduling.
Combines:
|
| AUDIO_VISUAL_SYNC | Audio-visual synchronization domain.
Processes audio at sample rate but syncs with frame-accurate scheduling Useful for multimedia applications requiring tight A/V sync
|
| AUDIO_GPU | GPU-accelerated audio processing domain.
Routes audio through GPU for compute-intensive processing while maintaining sample-accurate timing
|
| WINDOWING | Pure windowing domain (no rendering)
Handles window lifecycle, input events, and frame timing coordination. Does not perform any GPU rendering - that's handled by GRAPHICS domain.
Use case: Headless window manager, input-only applications, or when separating windowing from rendering into different subsystems.
|
| INPUT_EVENTS | Input event processing domain.
Handles input events (keyboard, mouse, MIDI) asynchronously without frame synchronization. Events are processed as they arrive, not locked to vsync or audio callbacks.
Use case: Input gesture recognition, MIDI controllers, or when input latency must be minimized independently of rendering frame rate.
|
22 : uint64_t {
23
24
25
26
27
28
29
30
31
32
33 AUDIO = (
static_cast<uint64_t
>(Nodes::ProcessingToken::AUDIO_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::AUDIO_BACKEND) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::SAMPLE_ACCURATE)),
34
35
36
37
38
39
40
41
42
43 AUDIO_PARALLEL = (
static_cast<uint64_t
>(Nodes::ProcessingToken::AUDIO_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::AUDIO_PARALLEL) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::SAMPLE_ACCURATE)),
44
45
46
47
48
49
50
51
52
53
54
55 GRAPHICS = (
static_cast<uint64_t
>(Nodes::ProcessingToken::VISUAL_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::GRAPHICS_BACKEND) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::FRAME_ACCURATE)),
56
57
58
59
60
61
62
63
64
65 GRAPHICS_ADAPTIVE = (
static_cast<uint64_t
>(Nodes::ProcessingToken::VISUAL_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::GRAPHICS_BACKEND) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::MULTI_RATE)),
66
67
68
69
70
71
72
73
74
75
76
77 CUSTOM_ON_DEMAND = (
static_cast<uint64_t
>(Nodes::ProcessingToken::CUSTOM_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::SAMPLE_RATE | Buffers::ProcessingToken::CPU_PROCESS | Buffers::ProcessingToken::SEQUENTIAL) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::ON_DEMAND)),
78
79
80
81
82
83
84
85
86
87 CUSTOM_FLEXIBLE = (
static_cast<uint64_t
>(Nodes::ProcessingToken::CUSTOM_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::FRAME_RATE | Buffers::ProcessingToken::GPU_PPOCESS | Buffers::ProcessingToken::PARALLEL) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::CUSTOM)),
88
89
90
91
92
93
94
95
96
97 AUDIO_VISUAL_SYNC = (
static_cast<uint64_t
>(Nodes::ProcessingToken::AUDIO_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::SAMPLE_RATE | Buffers::ProcessingToken::CPU_PROCESS | Buffers::ProcessingToken::SEQUENTIAL) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::FRAME_ACCURATE)),
98
99
100
101
102
103
104
105 AUDIO_GPU = (
static_cast<uint64_t
>(Nodes::ProcessingToken::AUDIO_RATE) << 32) | (
static_cast<uint64_t
>(Buffers::ProcessingToken::SAMPLE_RATE | Buffers::ProcessingToken::GPU_PPOCESS | Buffers::ProcessingToken::PARALLEL) << 16) | (
static_cast<uint64_t
>(Vruta::ProcessingToken::MULTI_RATE)),
106
107
108
109
110
111
112
113
114
115
116 WINDOWING = (
static_cast<uint64_t
>(Nodes::ProcessingToken::VISUAL_RATE) << 32)
117 | (static_cast<uint64_t>(Buffers::ProcessingToken::WINDOW_EVENTS) << 16)
118 | (static_cast<uint64_t>(Vruta::ProcessingToken::FRAME_ACCURATE)),
119
120
121
122
123
124
125
126
127
128
129
130 INPUT_EVENTS = (
static_cast<uint64_t
>(Nodes::ProcessingToken::CUSTOM_RATE) << 32)
131 | (static_cast<uint64_t>(Buffers::ProcessingToken::WINDOW_EVENTS) << 16)
132 | (static_cast<uint64_t>(Vruta::ProcessingToken::EVENT_DRIVEN)),
133};
@ AUDIO_PARALLEL
High-performance parallel audio processing domain.
@ CUSTOM_FLEXIBLE
Custom processing domain with flexible scheduling.
@ AUDIO
Standard real-time audio processing domain.
@ AUDIO_VISUAL_SYNC
Audio-visual synchronization domain.
@ INPUT_EVENTS
Input event processing domain.
@ CUSTOM_ON_DEMAND
Custom processing domain with on-demand scheduling.
@ GRAPHICS
Standard real-time graphics processing domain.
@ GRAPHICS_ADAPTIVE
Multi-rate graphics processing for adaptive frame rates.
@ WINDOWING
Pure windowing domain (no rendering)
@ AUDIO_GPU
GPU-accelerated audio processing domain.