blob: 58195eafe71986e95934da2e34350e04acefc804 [file] [log] [blame]
// Copyright 2019 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.report;
/// A hardcoded number of max mouse buttons. This should be increased in the future
/// if we ever see mice with more buttons.
const uint32 MOUSE_MAX_NUM_BUTTONS = 32;
/// Describes the format of the input report that will be sent from the mouse
/// to the device.
table MouseInputDescriptor {
/// The range of relative X movement.
1: Axis movement_x;
/// The range of relative Y movement.
2: Axis movement_y;
/// The range of the position of X.
/// The main use of position is from virtual mice like over VNC.
6: Axis position_x;
/// The range of the position of Y.
/// The main use of position is from virtual mice like over VNC.
7: Axis position_y;
/// The range of relative vertical scroll.
3: Axis scroll_v;
/// The range of relative horizontal scroll.
4: Axis scroll_h;
/// This is a vector of id's for the mouse buttons.
5: vector<uint8>:MOUSE_MAX_NUM_BUTTONS buttons;
};
/// The capabilities of a mouse device.
table MouseDescriptor {
1: MouseInputDescriptor input;
};
/// `MouseReport` gives the relative movement of the mouse and currently
/// pressed buttons. Relative means the movement seen between the previous
/// report and this report. The client is responsible for tracking this and
/// converting it to absolute movement.
table MouseInputReport {
/// Relative X positional displacement.
1: int64 movement_x;
/// Relative Y positional displacement.
2: int64 movement_y;
/// The position of X.
/// The main use of position is from virtual mice like over VNC.
6: int64 position_x;
/// The position of Y.
/// The main use of position is from virtual mice like over VNC.
7: int64 position_y;
/// Relative vertical scrolling displacement.
3: int64 scroll_v;
/// Relative horizontal scrolling displacement.
4: int64 scroll_h;
/// A list of currently pressed buttons.
5: vector<uint8>:MOUSE_MAX_NUM_BUTTONS pressed_buttons;
};