mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 09:46:09 +03:00
59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
|
// Copyright 2017 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
module device.mojom;
|
||
|
|
||
|
// This input_service.mojom defines structs and interfaces for providing
|
||
|
// information and notifiations about connected/disconnected input/HID
|
||
|
// devices.
|
||
|
|
||
|
enum InputDeviceSubsystem {
|
||
|
SUBSYSTEM_HID = 0,
|
||
|
SUBSYSTEM_INPUT = 1,
|
||
|
SUBSYSTEM_UNKNOWN = 2,
|
||
|
};
|
||
|
|
||
|
enum InputDeviceType {
|
||
|
TYPE_BLUETOOTH = 0,
|
||
|
TYPE_USB = 1,
|
||
|
TYPE_SERIO = 2,
|
||
|
TYPE_UNKNOWN = 3,
|
||
|
};
|
||
|
|
||
|
struct InputDeviceInfo {
|
||
|
string id;
|
||
|
string name;
|
||
|
InputDeviceSubsystem subsystem;
|
||
|
InputDeviceType type;
|
||
|
|
||
|
bool is_accelerometer;
|
||
|
bool is_joystick;
|
||
|
bool is_key;
|
||
|
bool is_keyboard;
|
||
|
bool is_mouse;
|
||
|
bool is_tablet;
|
||
|
bool is_touchpad;
|
||
|
bool is_touchscreen;
|
||
|
};
|
||
|
|
||
|
interface InputDeviceManagerClient {
|
||
|
// Notifies the client that a device is added.
|
||
|
InputDeviceAdded(InputDeviceInfo device_info);
|
||
|
|
||
|
// Notifies the client that a device is removed.
|
||
|
InputDeviceRemoved(string id);
|
||
|
};
|
||
|
|
||
|
interface InputDeviceManager {
|
||
|
// Returns list of all currently connected input/hid devices and set client
|
||
|
// to InputDeviceManager. The implementation of InputDeviceManager guarantees
|
||
|
// the returned callback is always posted earlier than InputDeviceAdded()
|
||
|
// and InputDeviceRemoved().
|
||
|
GetDevicesAndSetClient(associated InputDeviceManagerClient client) =>
|
||
|
(array<InputDeviceInfo> devices);
|
||
|
|
||
|
// Returns list of all currently connected input/hid devices only.
|
||
|
GetDevices() => (array<InputDeviceInfo> devices);
|
||
|
};
|