Skip to main content

register_stream_take

Function register_stream_take 

Source
pub(crate) fn register_stream_take(
    ws: &Arc<Workspace>,
    key: &SessionSlot,
    axes: DictateAxes,
    surface: Option<String>,
    initiator: Option<u64>,
) -> Result<RegisteredTake, String>
Expand description

Command::DictateStream: register a take the client will feed with frames.

Registration is SYNCHRONOUS, and the dispatch arm performs it before the runner is spawned: the socket’s connection is one ordered stream, so the frame a client sends right after its start message must find the take already there. Nothing here opens a device, and that is what makes the synchronous registration possible.