pub enum InputOwnershipRequest {
GetEvent {
target: InputOwnershipTarget,
responder: InputOwnershipGetEventResponder,
},
}Expand description
Get information about ownership of input (replaces DisplayOwnership).
By default, user input is handled by the platform input pipeline
(SceneManager) and delivered to applications via standard UI protocols
(e.g. fuchsia.ui.pointer.TouchSource).
Low-level components (such as Starnix or Virtcon) that require direct access
to hardware input devices via fuchsia.input.report.Service must observe this
event to pause or resume reading from direct driver streams, preventing
duplicate processing or input leakage.
This protocol intentionally assumes a system-wide singleton direct-client model where only one direct client or the platform pipeline consumes input at any given time.
During ownership transitions (e.g. switching display ownership or view focus), an intermediate state may occur where neither the direct client nor the platform pipeline owns input. During any unowned or transition state, all consumers (both direct clients and the platform pipeline) must pause reading and processing hardware input reports until their respective ownership signal is asserted.
Variants§
GetEvent
Gets a duplicate handle to the shared kernel ownership_event whose
orthogonal signals inform clients and the system pipeline when direct
driver input access (fuchsia.input.report.Service) is granted or revoked:
Virtcon(target=virtcon: {}): owns input iffInputOwnershipSignal.DISPLAY_UNOWNEDis asserted.Starnix(target=view_ref): owns direct input iff bothInputOwnershipSignal.DISPLAY_PLATFORM_OWNEDandInputOwnershipSignal.INPUT_CLIENT_OWNEDare asserted.SceneManager(target=platform: {}): owns platform pipeline input iff bothInputOwnershipSignal.DISPLAY_PLATFORM_OWNEDandInputOwnershipSignal.INPUT_PLATFORM_OWNEDare asserted (pauses wheneverDISPLAY_UNOWNEDorINPUT_CLIENT_OWNEDis asserted).
If target is set to an unsupported or unknown variant, the call
returns InputOwnershipError.INVALID_TARGET.
Implementations§
Source§impl InputOwnershipRequest
impl InputOwnershipRequest
pub fn into_get_event( self, ) -> Option<(InputOwnershipTarget, InputOwnershipGetEventResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL