diff --git a/planning.md b/planning.md index 5ac3e3c..7abc841 100644 --- a/planning.md +++ b/planning.md @@ -118,4 +118,5 @@ These are open questions tracked in `architecture.md` that do not need to be res - Node discovery mechanism - Hard vs soft byte budget limits - Cooperative capture release: if a capture source has no live downstream targets for a configurable time window, stop capture and release the device. Intended as a resource-conservation policy rather than an immediate reaction to disconnect events. Requires the node to track downstream liveness (e.g. last successful send timestamp per output) and implement a reaper timer. -- Xorg viewer remote controls: expose viewer state (zoom, pan, scale policy, anchor) as enumerable/settable controls via the protocol, analogous to V4L2 controls. Future extension: shader-based post-processing — initial candidates are a colour-correction shader and custom user-provided GLSL fragment shaders sent over the wire. +- Unified device model: active display windows should be registered as devices alongside V4L2 cameras, using the same ENUM_DEVICES / ENUM_CONTROLS / GET_CONTROL / SET_CONTROL protocol. START_DISPLAY would return a device_id for the opened window; controls (scale, anchor, position, size, zoom, pan) are then addressable as (device_id, control_id) pairs like any other device. Requires a device_type field in ENUM_DEVICES responses so controllers can distinguish V4L2 devices from display windows. Future device types: codec processes, screen grab sources. This extends naturally to shader-based post-processing and other viewer state as controls. +- controller_cli improvements: (1) readline for line editing and history; (2) discovery integration — run a discovery listener, expose a `peers` command listing discovered nodes, `connect ` to switch target, auto-print newly discovered nodes.