pub async fn handle_input(
    scene_manager: Arc<Mutex<FlatSceneManager>>,
    pointer_hack_listeners: Arc<Mutex<Vec<PointerCaptureListenerHackProxy>>>,
    input_device_registry_request_stream_receiver: futures::channel::mpsc::UnboundedReceiver<
        InputDeviceRegistryRequestStream,
    >,
    text_settings_handler: text_settings::Handler,
) -> Result<InputPipeline, Error> {
    let input_pipeline = InputPipeline::new(
        vec![
            input_device::InputDeviceType::Mouse,
            input_device::InputDeviceType::Touch,
            input_device::InputDeviceType::Keyboard,
        ],
        input_handlers(scene_manager, pointer_hack_listeners, text_settings_handler).await,
    )
    .await
    .context("Failed to create InputPipeline.")?;

    let input_device_registry_fut = handle_input_device_registry_request_streams(
        input_device_registry_request_stream_receiver,
        input_pipeline.input_device_types.clone(),
        input_pipeline.input_event_sender.clone(),
        input_pipeline.input_device_bindings.clone(),
    );

    fasync::Task::local(input_device_registry_fut).detach();

    Ok(input_pipeline)
}
/// Begins handling input events. The returned future will complete when
/// input events are no longer being handled.
///
/// # Parameters
/// - `scene_manager`: The scene manager used by the session.
/// - `pointer_hack_server`: The pointer hack server, used to fetch listeners for pointer
///    hack input handlers.
/// - `input_device_registry_request_stream_receiver`: A receiving end of a MPSC channel for
///   `InputDeviceRegistry` messages.
/// - `text_settings_handler`: An input pipeline stage that decorates `InputEvent`s with
///    text settings (e.g. desired keymap IDs).
Begins handling input events. The returned future will complete when
input events are no longer being handled.
Begins handling input events . The returned future will complete when input events are no longer being handled .
pub async fn handle_input(
    scene_manager: Arc<Mutex<FlatSceneManager>>,
    pointer_hack_listeners: Arc<Mutex<Vec<PointerCaptureListenerHackProxy>>>,
    input_device_registry_request_stream_receiver: futures::channel::mpsc::UnboundedReceiver<
        InputDeviceRegistryRequestStream,
    >,
    text_settings_handler: text_settings::Handler,
) -> Result<InputPipeline, Error> {
    let input_pipeline = InputPipeline::new(
        vec![
            input_device::InputDeviceType::Mouse,
            input_device::InputDeviceType::Touch,
            input_device::InputDeviceType::Keyboard,
        ],
        input_handlers(scene_manager, pointer_hack_listeners, text_settings_handler).await,
    )
    .await
    .context("Failed to create InputPipeline.")?;
    let input_device_registry_fut = handle_input_device_registry_request_streams(
        input_device_registry_request_stream_receiver,
        input_pipeline.input_device_types.clone(),
        input_pipeline.input_event_sender.clone(),
        input_pipeline.input_device_bindings.clone(),
    );
    fasync::Task::local(input_device_registry_fut).detach();
    Ok(input_pipeline)
}
pub async fn handle_input ( scene_manager : Arc < Mutex < FlatSceneManager > > , pointer_hack_listeners : Arc < Mutex < Vec < PointerCaptureListenerHackProxy > > > , input_device_registry_request_stream_receiver : futures :: channel :: mpsc :: UnboundedReceiver < InputDeviceRegistryRequestStream , > , text_settings_handler : text_settings :: Handler , ) -> Result < InputPipeline , Error > { let input_pipeline = InputPipeline :: new ( vec ! [ input_device InputDeviceType Mouse input_device InputDeviceType Touch input_device InputDeviceType Keyboard ] , input_handlers ( scene_manager , pointer_hack_listeners , text_settings_handler ) . await , ) . await . context ( " " ) ? ; let input_device_registry_fut = handle_input_device_registry_request_streams ( input_device_registry_request_stream_receiver , input_pipeline . input_device_types . clone ( ) , input_pipeline . input_event_sender . clone ( ) , input_pipeline . input_device_bindings . clone ( ) , ) ; fasync :: Task :: local ( input_device_registry_fut ) . detach ( ) ; Ok ( input_pipeline ) }
Begins handling input events.
Begins handling input events .
scene_manager
Arc<Mutex<FlatSceneManager>>
pointer_hack_listeners
Arc<Mutex<Vec<PointerCaptureListenerHackProxy>>>
input_device_registry_request_stream_receiver
futures::channel::mpsc::UnboundedReceiver<
        InputDeviceRegistryRequestStream,
    >
text_settings_handler
text_settings::Handler
scene_manager
Arc<Mutex<FlatSceneManager>>
The scene manager used by the session.
The scene manager used by the session .
pointer_hack_listeners
Arc<Mutex<Vec<PointerCaptureListenerHackProxy>>>
input_device_registry_request_stream_receiver
futures::channel::mpsc::UnboundedReceiver<
        InputDeviceRegistryRequestStream,
    >
A receiving end of a MPSC channel for
`InputDeviceRegistry` messages.
A receiving end of a MPSC channel for ` InputDeviceRegistry ` messages .
text_settings_handler
text_settings::Handler
An input pipeline stage that decorates `InputEvent`s with
text settings .
An input pipeline stage that decorates ` InputEvent ` s with text settings .
pointer_hack_server
The pointer hack server, used to fetch listeners for pointer
hack input handlers.
The pointer hack server used to fetch listeners for pointer hack input handlers .