Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
domain_handler.hpp
Go to the documentation of this file.
1// domain_handler.hpp — Dispatches inspector protocol requests to data sources
2#pragma once
3
11
12#include <memory>
13#include <string>
14#include <utility>
15
16namespace pulp::view { class View; }
17namespace pulp::render { class RenderPassManager; class DirtyTracker; }
18
19namespace pulp::inspect {
20
22class StateInspector;
23class ConsoleCapture;
24class AudioInspector;
25class MotionInspector;
26class MotionScrubber;
27class TraceInspector;
28class TweakStore;
29
34public:
35 DomainHandler() = default;
36
37 // ── Data sources (all optional) ─────────────────────────────────
38 void set_root_view(view::View* root) { root_ = root; }
40 agent_context_ = source;
41 }
43 capture_ = source;
44 }
46 skp_capture_ = source;
47 }
48
54 void set_console_capture(ConsoleCapture* console) { console_ = console; }
58 runtime_evaluator_ = evaluator;
59 }
60
63 const InspectorMessage& request, RuntimeEvaluator* evaluator);
64
72 void set_runtime_eval_enabled(bool enabled) {
73 runtime_eval_enabled_ = enabled;
74 runtime_eval_denial_.clear();
75 }
76
78 void set_runtime_eval_denied(std::string reason) {
79 runtime_eval_enabled_ = false;
80 runtime_eval_denial_ = std::move(reason);
81 }
84 void set_motion_scrubber(MotionScrubber* scrubber) { motion_scrubber_ = scrubber; }
86 void set_trace_inspector(std::shared_ptr<TraceInspector> trace);
89 trace_binding_.reset();
90 trace_ = trace;
91 }
93 void set_tweak_store(TweakStore* store) { tweak_store_ = store; }
95 test_input_.set_source(source);
96 }
98 return test_input_.source();
99 }
101 test_input_.release(reason);
102 }
103
108 void set_dirty_tracker(render::DirtyTracker* dirty) { dirty_ = dirty; }
109
110 // ── Inspector-wide config ───────────────────────────────────────
118 const InspectorConfig& config() const { return config_; }
119 InspectorConfig& mutable_config() { return config_; }
120
123
124private:
125 view::View* root_ = nullptr;
126 InspectorAgentContextSource* agent_context_ = nullptr;
127 InspectorCaptureSource* capture_ = nullptr;
128 SkpCaptureSource* skp_capture_ = nullptr;
129 InspectorOverlay* overlay_ = nullptr;
130 StateInspector* state_ = nullptr;
131 ConsoleCapture* console_ = nullptr;
132 RuntimeEvaluator* runtime_evaluator_ = nullptr;
133 bool runtime_eval_enabled_ = false;
134 std::string runtime_eval_denial_;
135 AudioInspector* audio_ = nullptr;
136 MotionInspector* motion_ = nullptr;
137 MotionScrubber* motion_scrubber_ = nullptr;
138 TraceInspector* trace_ = nullptr;
139 std::shared_ptr<TraceInspector> trace_binding_;
140 render::RenderPassManager* rpm_ = nullptr;
141 render::DirtyTracker* dirty_ = nullptr;
142 TweakStore* tweak_store_ = nullptr;
143 TestInputDomain test_input_;
144 InspectorConfig config_{};
145
146 // Domain handlers
147 InspectorMessage handle_inspector(const InspectorMessage& req);
148 InspectorMessage handle_dom(const InspectorMessage& req);
149 InspectorMessage handle_css(const InspectorMessage& req);
150 InspectorMessage handle_performance(const InspectorMessage& req);
151 InspectorMessage handle_state(const InspectorMessage& req);
152 InspectorMessage handle_test(const InspectorMessage& req);
153 InspectorMessage handle_console(const InspectorMessage& req);
154 InspectorMessage handle_runtime(const InspectorMessage& req);
155 InspectorMessage handle_audio(const InspectorMessage& req);
156 InspectorMessage handle_capture(const InspectorMessage& req);
157 InspectorMessage handle_render(const InspectorMessage& req);
158 InspectorMessage handle_motion(const InspectorMessage& req);
159 InspectorMessage handle_trace(const InspectorMessage& req);
160 InspectorMessage handle_live_constant(const InspectorMessage& req);
161};
162
163} // namespace pulp::inspect
Monitors audio thread performance and state for the inspector.
Definition audio_inspector.hpp:58
Captures JS console output (console.log/warn/error) for inspector display.
Definition console_capture.hpp:22
void release_test_input(TestInputReleaseReason reason) noexcept
Definition domain_handler.hpp:100
InspectorConfig & mutable_config()
Definition domain_handler.hpp:119
InspectorMessage handle_runtime_with_evaluator(const InspectorMessage &request, RuntimeEvaluator *evaluator)
Dispatch one Runtime request with a scoped borrowed evaluator.
void set_runtime_eval_enabled(bool enabled)
Opt in to Runtime.evaluate / Runtime.interrupt.
Definition domain_handler.hpp:72
void set_tweak_store(TweakStore *store)
Definition domain_handler.hpp:93
void set_audio_inspector(AudioInspector *audio)
Definition domain_handler.hpp:82
void set_dirty_tracker(render::DirtyTracker *dirty)
Wire the per-frame dirty tracker so the inspector's Performance tab can toggle DirtyTracker::set_debu...
Definition domain_handler.hpp:108
void set_overlay(InspectorOverlay *overlay)
Attach the overlay.
void set_agent_context_source(InspectorAgentContextSource *source)
Definition domain_handler.hpp:39
void set_state_inspector(StateInspector *state)
Definition domain_handler.hpp:53
void set_render_pass_manager(render::RenderPassManager *rpm)
Definition domain_handler.hpp:92
const InspectorConfig & config() const
Definition domain_handler.hpp:118
void set_motion_inspector(MotionInspector *motion)
Definition domain_handler.hpp:83
void set_runtime_evaluator(RuntimeEvaluator *evaluator)
Inject the separately linked arbitrary-execution component.
Definition domain_handler.hpp:57
InspectorMessage handle(const InspectorMessage &request)
Handle a protocol request. Returns a response message.
void set_console_capture(ConsoleCapture *console)
Definition domain_handler.hpp:54
void set_trace_inspector(std::shared_ptr< TraceInspector > trace)
Wire and retain the Perfetto tracing bridge used by Trace.* dispatch.
void set_config(InspectorConfig config)
Replace the runtime config.
void set_motion_scrubber(MotionScrubber *scrubber)
Definition domain_handler.hpp:84
void set_capture_source(InspectorCaptureSource *source)
Definition domain_handler.hpp:42
void set_root_view(view::View *root)
Definition domain_handler.hpp:38
void set_skp_capture_source(SkpCaptureSource *source)
Definition domain_handler.hpp:45
InspectorTestInputSource * test_input_source() const
Definition domain_handler.hpp:97
void set_runtime_eval_denied(std::string reason)
Fail-closed runtime-eval state with an exact host-owned diagnostic.
Definition domain_handler.hpp:78
void set_test_input_source(InspectorTestInputSource *source)
Definition domain_handler.hpp:94
void set_trace_inspector(TraceInspector *trace)
Source-compatible dispatch-only wiring.
Definition domain_handler.hpp:88
Composition seam for host state that does not belong in protocol dispatch.
Definition agent_context.hpp:30
Host-owned image source.
Definition capture_source.hpp:19
Definition inspector_overlay.hpp:36
Definition test_input.hpp:50
Definition motion_inspector.hpp:54
Definition motion_scrubber.hpp:35
Host-injected arbitrary-execution boundary.
Definition runtime_evaluator.hpp:41
Host-owned serialized-frame source.
Definition skp_capture_source.hpp:21
Monitors StateStore parameters for the inspector.
Definition state_inspector.hpp:25
Definition test_input.hpp:63
Handles Trace.* protocol requests by driving pulp::runtime::Tracing.
Definition trace_inspector.hpp:46
In-memory record of inspector direct-manipulation edits ("tweaks"), keyed by stable_anchor_id + dotte...
Definition tweak_store.hpp:53
Tracks rectangular regions that need repainting.
Definition dirty_tracker.hpp:13
Frame-level render pass manager.
Definition render_pass.hpp:41
Definition view.hpp:73
Definition analyzer_provider.hpp:12
Definition agent_context.hpp:7
TestInputReleaseReason
Definition test_input.hpp:43
Definition gpu_fwd.hpp:31
SequencerStateChannel is the audio-safe transport for a plugin's structured NON-parameter state: the ...
Definition audio_device_manager.hpp:48
Definition motion.hpp:26
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
@ overlay
The generalized overlay slot was dismissed, firing on_overlay_dismissed so React state can flip setOp...
Definition overlay_dismissal.hpp:264
Inspector runtime configuration.
Definition editor_url.hpp:38
A single inspector protocol message (request, response, or event).
Definition protocol.hpp:18