// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.input.injection;

using fuchsia.input.report;

/// A TEST-ONLY protocol which injects `InputDevice`s into the
/// input system.
///
/// This protocol is not intended for production use; products
/// _should_ take measures to ensure this protocol is not
/// routed to production components.
@discoverable
protocol InputDeviceRegistry {
    /// Registers an input device represented by `device`.
    /// On registration, the InputDeviceRegistry starts listening for input reports on the
    /// InputReportsReader returned by device.GetInputReportsReader().
    Register(resource struct {
        device client_end:fuchsia.input.report.InputDevice;
    });
};
